Python辞書としてフォーマットされた文字列を受け取るコードがあります
"{'a':'1','b':'2',...}"
これを適切な辞書に変換する必要があります。
私は2つのアプローチを試しました。を使用するjson.loads(s)
と、ast.literal_eval(s)
astははるかに堅牢で、文字列内の任意の形式の引用符を受け入れて「正しく機能する」ようですが、jsonは引用符の詳細について非常に慎重であり、単一の形式で失敗することはありません。引用形式の。私は本当に入力に対して可能な限り柔軟になりたいので、使用することを好みますast
が、私の同僚の何人かは、それが「安全な」モジュールおよび使用する機能ではないかもしれないと主張します。
特にjson.loads()と比較して、astおよびast.literal_eval()の安全性について誰かがアドバイスできますか?
ありがとう