在 Python 中迭代遍历嵌套字典和子字典

4

JSON:

data = {"result":[{"name":"Teddy","list":{"0":"24","1":"43","2":"56"}},
           {"name":"Barney","list":{"0":"24","1":"43","2":"56"}]}

代码:

i = 0
j = 0
for p in data['result']:
    print('Name: ' + p['name'])
    for v in p['list']:
        i += 1
        print("{0} : {1}".format(i,v[j]))
        j += 1

我试图访问每个值并将它们打印出来,但不幸的是,没有任何成功的迹象,需要帮助。

我看到过:循环遍历所有嵌套字典值?


看起来 ij 完全与数据没有任何关系。 - Daniel Roseman
嗯,看看我的JSON,我(这里没有显示),但我将其加载到字典中,然后尝试对其进行迭代。 - haxxir411
“without any success” 的意思是什么?你能发布结果吗?此外,你能指定预期的输出是什么吗? - brianpck
请注意,在您的“data”末尾,您需要再添加另一个“}”,就像这样..."2":"56"}}]} - ettanany
因为您没有为第二个元素关闭大括号! - ettanany
显示剩余2条评论
1个回答

3

从您的尝试中,看起来您想要做的是以下内容:

data = {"result":[
    {"name":"Teddy","list":{"0":"24","1":"43","2":"56"}},
    {"name":"Barney","list":{"0":"24","1":"43","2":"56"}}]}

for p in data['result']:
    print('Name: ' + p['name'])
    for k, v in p['list'].items():
        print("{0} : {1}".format(k,v))

请注意,data不是JSON对象,而是Python字典。
Name: Teddy
1 : 43
0 : 24
2 : 56
Name: Barney
1 : 43
0 : 24
2 : 56

属性错误:'dict'对象没有'iteritems'属性。 - haxxir411
@haxxir411 你使用的是哪个版本的Python?2还是3? - ettanany
在哪里检查? - haxxir411
Python 3.5.2(v3.5.2:4def2a2901a5) - haxxir411
所以你应该使用items()而不是iteritems() - ettanany
非常感谢 :-) :) :) - haxxir411

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接