解析动态更改json文件并将其存储为dict在Python中
问题描述:
我有动态更改json文件(不是整个文件动态更改,它只是在我将在下面指定的一个点),我需要迭代for循环在那点(它动态地改变),这样我就可以在json文件中获取该括号内的所需元素。下面是json片段的样子。解析动态更改json文件并将其存储为dict在Python中
"A" : {
"uni/aa/bb" (----> This changes randomly): [ {
"Name" : "cc",
"Id" : "1",
}, {
"Name" : "cc",
"Id" : "1",
} ]
}
我用re.search来匹配我在那一点上得到的模式。但没有运气。我需要最终存储名称和Id值。有什么建议么?
RESP = json.loads(RESP)--->这给出了上面提到的我JSON输出
下面是我试图码的样品。
for k in resp['A']:
for v in k['uni/aa/bb']: #---> TypeError: string indices must be integers
for k in resp['A']:
m = re.search('uni/(.*)') #--> Because this is changing dynamically
if m:
name = str(m['Name']) #---> TypeError: '_sre.SRE_Match' object has no attribute '__getitem__'
很难确切地告诉你要问什么。你能否显示你尝试过的代码,并解释它是如何工作的? – glibdud
@chaitanya如果你总是想知道属于“A”对象的子项的字符串键,并且不介意从json中删除项目,你可以尝试弹出该项。像这样:'key,value = resp [“A”]。popitem()'。从这个'key',你可以得到那些'uni/aa/bb'字符串,不管它是什么。在此之后,你还可以像这样深入地遍历那个孩子:'resp [“A”] [key] [“Name”]''。参考:https://*.com/a/3097896/623810 – PEIN
您还可以使用json.keys()将所有键保存在一个列表中,并且当json更改时,检查哪个键不在此列表中并迭代? – iamkhush