我正在尝试在python中读取JSON文件并且它已成功但是会跳过一些顶级值。我正在尝试调试原因。这是代码。
data = json.load(open('pre.txt'))
for key,val in data['outputs'].items():
print key
print data['outputs'][key]['feat_left']
修改
这是文件的快照。我想阅读key
和feat_left
了解输出
{
"outputs": {
"/home/113267806.jpg": {
"feat_left": [
2.369331121444702,
-1.1544183492660522
],
"feat_right": [
2.2432730197906494,
-0.896904468536377
]
},
"/home/115061965.jpg": {
"feat_left": [
1.8996189832687378,
-1.3713303804397583
],
"feat_right": [
1.908974051475525,
-1.4422794580459595
]
},
"/home/119306609.jpg": {
"feat_left": [
-0.7765399217605591,
-1.690917730331421
],
"feat_right": [
-1.1964678764343262,
-1.9359161853790283
]
}
}
}
P.S:感谢Rahul K P代码
答案 0 :(得分:2)
不会跳过最高值。您的data ['output']对象中有45875个项目。请尝试以下代码:
len(data['outputs'].items())
您的JSON文件中确实有45875个项目。请注意,JSON对象是python中的无序集合,如dict
。
答案 1 :(得分:2)
我想你想要:
for key, val in data['outputs'].items():
if 'feat_left' in val:
print key, data['outputs'][key]['feat_left']
答案 2 :(得分:0)
如果您只想使用for循环打印文件内容,可以尝试这样:
data = json.load(open('pre.txt')
for key,val in data['outputs'].items():
print key
print val[0] #this will print the array and its values below "feat_left", if the json is consistent
更强大的解决方案可能如下所示:
data = json.load(open('pre.txt')
for key,val in data['outputs'].items():
print key
for feat_key, feat_val in val.items():
if feat_key == 'feat_left':
print feat_val
代码未经测试,请尝试一下。
答案 3 :(得分:0)
试试这个:
for key, val in data['outputs'].items():
print key, val['feat_left']
#output /home/119306609.jpg [-0.7765399217605591, -1.690917730331421]
这将获取'feat_left'中的每个键和元素 然后,您可以在页面中显示您喜欢的内容