解析动态更改json文件并将其存储到python中的dict

时间:2017-05-22 20:25:49

标签: python json

我有动态更改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__'

1 个答案:

答案 0 :(得分:0)

如果您总是想知道属于"A"对象子项的字符串键,并且不介意从json中删除该项,则可以尝试弹出该项。像这样:key, value = resp["A"].popitem()。从这个键,你可以获得那些uni/aa/bb字符串,无论它是什么。之后你还可以进一步深入到这个孩子身上:resp["A"][key][0]["Name"]Reference

Sample code

另一种方法可能如下。代替for v in k['uni/aa/bb']:使用此for key, value in k.items():python3.xfor key, value in k.iteritems(): python2.xReference

Sample code