回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试筛选嵌套的JSON文件。我想用fitering“classes”和“id”创建一个新的json文件。源JSON文件:</p>
<pre><code>[
{"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"
}
]
</code></pre>
<p>我的目标是过滤<em><strong>'classes':'green diamond'</strong></em>拥有<em><strong>'id':'po1'</strong></em>。然后删除所有带有“绿色菱形”的类,除了“id”:“po1”</strong></em></p>
<p>结果是:</p>
<pre><code>[
{"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"
}]
</code></pre>
<p>我试图使用此代码获取数据,但出现错误:</p>
<pre><code>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
</code></pre>
<p>如何过滤这样的json文件</p>