Anonymous
Wie kann ich eine Liste aller verschachtelten Schlüssel von JSON bekommen?
Post
by Anonymous » 11 Aug 2025, 04:56
mein json: < /p>
Code: Select all
{
"Name1": {
"NNum": "11",
"Node1": {
"SubNodeA": "Thomas",
"SubNodeB": "27"
},
"Node2": {
"SubNodeA": "ZZZ",
"SubNodeD": "XXX",
"SubNodeE": "yy"
},
"Node3": {
"child1": 11,
"child2": {
"grandchild": {
"greatgrandchild1": "Rita",
"greatgrandchild2": "US"
}
}
}
}
}
< /code>
Das Format oder die Tasten sind nicht definiert und können in eine beliebige Tiefe gehen. [url=viewtopic.php?t=14917]Ich möchte[/url] eine Liste von Schlüssel: < /p>
keyList= ["Name1.NNum","Name1.Node1.SubNodeA",""Name1.Node1.SubNodeB","Name1.Node2.SubNodeA","Name1.Node2.SubNodeD","Name1.Node2.SubNodeE","Name1.Node3.child1","Name1.Node3.child2.grandchild.greatgrandchild1","Name1.Node3.child2.grandchild.greatgrandchild2"]
< /code>
Mein Code: < /p>
def extract_values(obj):
"""Pull all values of specified key from nested JSON."""
arr = []
key_list = []
parent = ""
def extract(obj, arr,parent):
"""Recursively search for values of key in JSON tree."""
if isinstance(obj, dict):
grandparent = ""
for k, v in obj.items():
print ("k ............",k)
parent = grandparent
temp_parent = k
print ("parent >>>>> ",parent)
if isinstance(v, (dict, list)):
parent = temp_parent
print ("IF VALUE DICT .. parent ", parent)
extract(v, arr,parent)
else:
grandparent = parent
parent = parent + "_" + temp_parent
print ("!!!! NOT DICT :).... **** parent ... ", parent)
arr.append(parent)
elif isinstance(obj, list):
for item in obj:
extract(item, arr)
#print ("arr >>>>>>>>>> ", arr)
time.sleep(5)
return arr
results = extract(obj, arr,parent)
return results
, aber dies ergibt die erwartete Ausgabe nicht.
1754881012
Anonymous
mein json: < /p> [code]{ "Name1": { "NNum": "11", "Node1": { "SubNodeA": "Thomas", "SubNodeB": "27" }, "Node2": { "SubNodeA": "ZZZ", "SubNodeD": "XXX", "SubNodeE": "yy" }, "Node3": { "child1": 11, "child2": { "grandchild": { "greatgrandchild1": "Rita", "greatgrandchild2": "US" } } } } } < /code> Das Format oder die Tasten sind nicht definiert und können in eine beliebige Tiefe gehen. [url=viewtopic.php?t=14917]Ich möchte[/url] eine Liste von Schlüssel: < /p> keyList= ["Name1.NNum","Name1.Node1.SubNodeA",""Name1.Node1.SubNodeB","Name1.Node2.SubNodeA","Name1.Node2.SubNodeD","Name1.Node2.SubNodeE","Name1.Node3.child1","Name1.Node3.child2.grandchild.greatgrandchild1","Name1.Node3.child2.grandchild.greatgrandchild2"] < /code> Mein Code: < /p> def extract_values(obj): """Pull all values of specified key from nested JSON.""" arr = [] key_list = [] parent = "" def extract(obj, arr,parent): """Recursively search for values of key in JSON tree.""" if isinstance(obj, dict): grandparent = "" for k, v in obj.items(): print ("k ............",k) parent = grandparent temp_parent = k print ("parent >>>>> ",parent) if isinstance(v, (dict, list)): parent = temp_parent print ("IF VALUE DICT .. parent ", parent) extract(v, arr,parent) else: grandparent = parent parent = parent + "_" + temp_parent print ("!!!! NOT DICT :).... **** parent ... ", parent) arr.append(parent) elif isinstance(obj, list): for item in obj: extract(item, arr) #print ("arr >>>>>>>>>> ", arr) time.sleep(5) return arr results = extract(obj, arr,parent) return results [/code] , aber dies ergibt die erwartete Ausgabe nicht.