如何从Python的Json Feed打印Json对象?
我是python和Json的新手,我有一个关于从JSON文件获取值的问题。如何从Python的Json Feed打印Json对象?
比方说,我有水果JSON饲料,如下面的一个:具有维生素元素“C”
{
"Banana": {
Vitamin: "A",
},
"Apple": {
Vitamin: "B",
},
"Orange": {
Vitamin: "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”的对象,在这种情况下,“橙色”
因此,最终我只想要代码搜索JSON文件中的维生素C并打印水果橙。
你只需要建立一个 “反向” 树:
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'])
aDict=json.loads("your json content")
for k,v in aDict.iteritems():
#print '%s:%s' % (k, v)
if v['Vitamin']='C':
print k
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
这工作完美!非常感谢:) –
没问题!如果它能够工作,你可以升级并接受它! –
当然!我怎样才能做到这一点?我在这里相对较新:) –
感谢@Burhan哈立德你的答案。我有个问题。什么是defaultdict(列表)中的列表?另外,我不明白for循环。你能解释一下吗?非常感谢:) –
'defaultdict'是一种为字典设置默认值的方法,如果一个键不存在的话。在这个例子中,我为任何不存在列表的键设置了默认值。 for循环与您的循环一样,除了循环使用键之外,您还在同一时间循环键_和该键的值。这就是'.items()'所做的。 –