ホームページ >バックエンド開発 >Python チュートリアル >Python で辞書の文字列表現を辞書に安全に変換するにはどうすればよいですか?

Python で辞書の文字列表現を辞書に安全に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-23 12:11:19458ブラウズ

How Can I Safely Convert a String Representation of a Dictionary to a Dictionary in Python?

辞書の文字列表現を辞書に変換する

Python では、以下の文字列表現のように、辞書の文字列表現を変換することが望ましいことがよくあります。 、対応するものにdictionaries:

s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"

'eval' の使用を避ける

文字列式を評価するために 'eval' 関数を使用することは可能ですが、この方法は次の理由により推奨されません。セキュリティ上の懸念。 「eval」は任意のコードを実行し、脆弱性のリスクを高めます。

より安全な代替手段

文字列辞書を安全に変換するには、組み込みの「ast.literal_eval」の使用を検討してください。 ' 関数。 「ast.literal_eval」は、辞書、タプル、リストなどの文字列表現などのリテラル Python 式を評価するように特に設計されています。

import ast
ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")

出力:

{'muffin': 'lolz', 'foo': 'kitty'}

の利点'ast.literal_eval'

  • 安全性: リテラル式のみを評価し、悪意のあるコードの実行を防ぎます。
  • 汎用性: 辞書だけでなく、リスト、タプル、および他の Python リテラル構造。

との比較'eval'、'ast.literal_eval' は、辞書または他のリテラルの文字列表現を Python オブジェクトに変換するための、より安全でより制御された方法を提供します。

以上がPython で辞書の文字列表現を辞書に安全に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。