我正在尝试筛选嵌套的JSON文件。我想用fitering“classes”和“id”创建一个新的json文件。源JSON文件:
[
{"data": {"id": "ed", "label": "Executive Director (Harriet)"},
"classes": "purple"
},
{"data": {"id": "vp1", "label": "Vice President (Sarah)"},
"classes": "square"
},
{"data": {"id": "vp2", "label": "Vice President (Charlotte)"},
"classes": "square"
},
{"data": {"id": "po1", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "po2", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "pa", "label": "Program Associate (Ellen)"},
"classes": "myimage"
}
]
我的目标是过滤'classes':'green diamond'拥有'id':'po1'。然后删除所有带有“绿色菱形”的类,除了“id”:“po1”
结果是:
[
{"data": {"id": "ed", "label": "Executive Director (Harriet)"},
"classes": "purple"
},
{"data": {"id": "vp1", "label": "Vice President (Sarah)"},
"classes": "square"
},
{"data": {"id": "vp2", "label": "Vice President (Charlotte)"},
"classes": "square"
},
{"data": {"id": "po1", "label": "Program Officer (Sojourner)"},
"classes": "green diamond"
},
{"data": {"id": "pa", "label": "Program Associate (Ellen)"},
"classes": "myimage"
}]
我试图使用此代码获取数据,但出现错误:
import json
# Loding the data
with open("D:/bb.json", 'r') as file:
content = file.read()
# Converting json_data to python dictionary format
json_data = json.loads(content)
quantite = -1 # -1 for not found case
for data in json_data[0]:
# Checking for specific pair
if data['classes'] == 'square' and data['id'] == 'vp2':
print(data)
break
如何过滤这样的json文件
由于加载的json数据只是嵌套的list和dict,所以可以使用普通的list/dict操作;特别是,列表理解是有用的
结果:
尝试以下操作,对代码进行了一些更新
相关问题 更多 >
编程相关推荐