辞書の文字列表現を辞書に変換する
多くの場合、与えられたもののような辞書の文字列表現を変換する必要がある場合があります。
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
このような変換には eval を使用しないことが望ましいです。セキュリティ上の懸念のため。以下に、より安全な代替手段をいくつか示します。
ast.literal_eval の使用:
Python の ast モジュールには、式文字列を安全に評価するために特別に設計された literal_eval という便利な関数が用意されています。
import ast dict_from_string = ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
このメソッドではリテラルと単純な値の評価のみが可能です
ast.literal_eval の利点:
eval とは異なり、ast.literal_eval は評価を限られた Python リテラルのセットに制限します。これにより、任意のコードの実行に関連する潜在的なセキュリティ リスクが防止されます。
以上が辞書の文字列表現を Python 辞書に安全に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。