我有动态更改json文件(不是整个文件动态更改,它只是我将在下面指定的一点)我需要在那一点使用for循环进行迭代(动态改变的地方)以便我可以抓取json文件中该括号内的必需元素。下面是json片段的样子。
"A" : {
"uni/aa/bb" (----> This changes randomly): [ {
"Name" : "cc",
"Id" : "1",
}, {
"Name" : "cc",
"Id" : "1",
} ]
}
我使用re.search来匹配我在那时获得的模式。但没有运气。我最终需要存储Name和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__'
答案 0 :(得分:0)
如果您总是想知道属于"A"
对象子项的字符串键,并且不介意从json中删除该项,则可以尝试弹出该项。像这样:key, value = resp["A"].popitem()
。从这个键,你可以获得那些uni/aa/bb
字符串,无论它是什么。之后你还可以进一步深入到这个孩子身上:resp["A"][key][0]["Name"]
。 Reference
另一种方法可能如下。代替for v in k['uni/aa/bb']:
使用此for key, value in k.items():
,python3.x
或for key, value in k.iteritems():
python2.x
。 Reference