Pythonでデータを読み込めません。行の1つのサンプルがある:私はjson
をロードするとPythonで入れ子になったJSONリストと辞書の文字列を読む
foo_brackets='{"KEY2":[{"KEY2a":[{"KEY2a1":"4","KEY2a2":"5"},{"KEY2a1":"6","KEY2a2":"7"}],"KEY2b":"8"}],"KEY3":"9"}'
、KEY2
の値はその後、私の希望する結果になってから私を防止する、なぜならブラケットの、リストとして読み込まれ、その私はちょうど括弧を削除しようとすることができますが、実際のリスト、KEY2a
あるべき値がある
>>> import json
>>> foo_brackets_json=json.loads(foo_brackets)
>>> foo_brackets_json['KEY2']['KEY2b']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
:KEY2b
の値です。あなたは私がすべてのブラケットを取り除く場合は、これを見るとJSONに変換しようとすることができます:
>>> foo_no_brackets='{"KEY2":{"KEY2a":{"KEY2a1":"4","KEY2a2":"5"},{"KEY2a1":"6","KEY2a2":"7"},"KEY2b":"8"},"KEY3":"9"}'
>>> json.loads(foo_no_brackets)
# Traceback omitted since it's just the python error
ValueError: Expecting property name: line 1 column 45 (char 45)
foo_brackets
は有効なJSONのように見えるん(私は引用符を削除して、hereをテストした)、以下を得た:
{
"KEY2":[
{
"KEY2a":[
{
"KEY2a1":"4",
"KEY2a2":"5"
},
{
"KEY2a1":"6",
"KEY2a2":"7"
}
],
"KEY2b":"8"
}
],
"KEY3":"9"
}
質問:
私はfoo_brackets_json['KEY2']['KEY2b']
を呼び出すことができるようにfoo_brackets
のようなオブジェクトを読み込むための方法はありますか?
'foo_brackets_json ['KEY2'] [0] ['KEY2b']'を使って何が問題になっていますか? –
なぜあなたはそれらの括弧が「余分」だと思いますか?あなたが発見したとおり、有効なJSONであり、* list *を表します。彼らはあなたが1つの入れ子にされた辞書以外には何も存在するとは思わない以外の「余分な」ものではありません。 –
あなたは両方の権利を持っています - クイックフィードバックに感謝します。それはリストと辞書の組み合わせによって見られ、捨てられたのとはちょうど異なるフォーマットでした。 – Tchotchke