如何使用Python从Json Feed打印Json对象?

时间:2016-11-10 06:51:45

标签: python json search elements

我是python和Json的新手,我有一个关于从JSON文件中获取值的问题。

假设我有一个水果的JSON Feed,如下所示:

{
   "Banana": {
    Vitamin: "A",
},
 "Apple": {
    Vitamin: "B",
},
"Orange": {
    Vitamin: "C",
    },
}

假设我要打印具有维生素元素“C”的对象(在本例中为水果)

我使用以下方法加载json文件:

    import utils 
    fruits= utils.load_json('feed.json')

我将维生素元素存储在一个变量中:

      for fruit in fruits:
           list_of_vitamins= fruits[fruit]['Vitamin']

我正在使用if语句来查看维生素列表中是否有“C”,它是:

     if ("C" in list_of_vitamins):
          print "yes" 

这工作正常,但现在我试图找到“C”是否存在,如果存在,打印保存“C”的对象,在这种情况下,“ orange

所以最后我只想让代码在JSON文件中搜索维生素C并打印出水果橙。

3 个答案:

答案 0 :(得分:1)

import json

fruits_json= json.load(open('feed.json'))
print fruits_json

for fruit in fruits_json:
  if fruits_json[fruit]["Vitamin"] == "C":
    print fruit

答案 1 :(得分:0)

你只需要构建一个"反向"树:

from collections import defaultdict

fruits_by_vitamin = defaultdict(list) # if a key doesn't exist, set it to an
                                      # empty list

for fruit,data in fruits.items(): # on Python2, use iteritems()
    fruits_by_vitamin[data['Vitamin']].append(fruit)

print(fruits_by_vitamin['C'])

答案 2 :(得分:0)

aDict=json.loads("your json content")
for k,v in aDict.iteritems():
    #print '%s:%s' % (k, v)
    if v['Vitamin']='C':
        print k