如何使用Python过滤多个JSON数据?

时间:2017-07-23 21:11:57

标签: python json

我很难过滤多个json数据,我需要知道每个数据的type,如果类型对应于水果,则打印元素{{1} } key,请参阅python示例注释以获得更好的解释。

这里是JSON的样子:

fields

这是我尝试做的事情:

#json.items()

{
  'type': 'apple', 
  'fields': {
    'protein': '18g', 
    'glucide': '3%', 
   }
},  
{
  'type': 'banana', 
  'fields': {
    'protein': '22g', 
    'glucide': '8%', 
  }
}, 

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

你所拥有的似乎是一系列词汇。

然后在检查其值之前检查字典中是否存在密钥typefields,如下所示:

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']))