ジョブに適切なツールを使用します。JSONではなくPythonを解析しているため、ast.literal_eval()代わりに次を使用します。
>>> import ast
>>> ast.literal_eval('["a", "b", "c"]')
['a', 'b', 'c']
>>> ast.literal_eval("['a', 'b', 'c']")
['a', 'b', 'c']
>>> ast.literal_eval('["mixed", \'quoting\', """styles"""]')
['mixed', 'quoting', 'styles']
JSONドキュメントは、文字列に常に二重引用符を使用し、16\uhhhh進エスケープ構文にUTF-16を使用{...}し、キーと値のペアのオブジェクトを持ち、キーは常に文字列であり、シーケンスは常に[...]リストであり、、と値を使用nullしtrueますfalse。小文字のブール値に注意してください。数値は整数と浮動小数点の形式で提供されます。
Pythonでは、文字列表現は一重引用符と二重引用符を使用でき、Unicodeエスケープの使用\uhhhhと\Uhhhhhhhh形式(UTF-16サロゲートペアなし)、{...}表示構文の辞書は文字列だけでなく多くの異なるタイプのキーを持つことができ、シーケンスはリスト([...])にすることができますがタプル((...))も使用します。または、他の種類のコンテナーを引き続き使用することもできます。PythonにはNone、、TrueおよびFalse(タイトルケース!)があり、数値は整数、浮動小数点数、および複雑な形式で提供されます。
一方を他方と混同すると、デコードが成功したが、絵文字などのエスケープされた非BMPコードポイントなど、データが誤って解釈された場合に、解析エラーまたは微妙な問題が発生する可能性があります。それらをデコードするには、必ず正しい方法を使用してください。そして、ほとんどの場合、Python構文データがある場合、誰かが実際に間違ったエンコード方法を使用し、誤ってPython表現を生成しただけです。その場合、ソースを修正する必要があるかどうかを確認してください。通常、出力は、代わりに使用されるべきstr(object)場所を使用して生成されました。json.dumps(obj)