我很难过滤多个json数据,我需要知道每个数据的type
,如果类型对应于水果,则打印元素{{1} } key,请参阅python示例注释以获得更好的解释。
这里是JSON的样子:
fields
这是我尝试做的事情:
#json.items()
{
'type': 'apple',
'fields': {
'protein': '18g',
'glucide': '3%',
}
},
{
'type': 'banana',
'fields': {
'protein': '22g',
'glucide': '8%',
}
},
有没有办法实现这个目标?
答案 0 :(得分:1)
你所拥有的似乎是一系列词汇。
然后在检查其值之前检查字典中是否存在密钥type
和fields
,如下所示:
for d in data: # d is a dict
if 'type' in d and 'fields' in d:
if d['type'] == 'apple':
... # some print statements
elif d['type'] == 'banana':
... # some more print statements
答案 1 :(得分:0)
根据您对JSON的表示,看起来它实际上是一个列表,而不是字典。所以为了迭代它,你可以尝试这样的事情:
for item in json:
fields = item['fields']
if item['type'] == 'banana':
print('Bananas have {} of protein and {} glucide'.format(fields['protein'], fields['glucide']))
elif item['type'] == 'apple':
print('Apples have {} of protein and {} glucide'.format(fields['protein'], fields['glucide']))