我是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并打印出水果橙。
答案 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