JSONツリー構造の各ブランチを、そのブランチ内のアイテムのリストに変換したいとします。私はループを使用してそれをしたいが、私はインデックスを使用してオブジェクトにアクセスすることはできません。JSONツリーの各ブランチをアイテムのリストに変換するにはどうすればいいですか?
Example JSON:
{
"Root": { "child1": "abc",
"child2": "def",
"child3": { "grandchild1": "nick",
"grandchild2": "Sam"
}
}
}
私はそれらを横断し、以下のようにそれらを保存する:次のように
list1 = ['Root', "child1", "abc"]
list2 = ['Root', "child2", "def"]
list3 = ['Root', "child3", "grandchild1", "nick",]
list4 = ['Root', "child3", "grandchild2", "sam",]
私はJSONをお読みください。
import json
with open('sample.json') as f:
tree = json.load(f)
問題:私はこれらをループしたかった アイテムを追加してさまざまなリストに追加しますが、私はtree['Root']
のように自分のキーからアクセスできるのはChild1、2、3、tです鶏tree['Root']['child3']
は私に他の2人のメンバーを与えるはずです。しかし、このメソッドはJSONファイルに1400個のブランチ(かなり深く入れ子になっている)があり、それらに対して1400個のリストを作成したいというユースケースではスケーラブルではありません。
これを効率的に行う方法はありますか?
は、構造内のすべての値がいずれかの文字列またはオブジェクト(辞書)であることを行っていますか? – glibdud
@glibdudすべての要素はdictですが、dict内の特定のキーの値のいくつかはリストになります。 – utengr