我试图从json文件中提取嵌套值.我想打印每个“id”键的每个值.我想我很接近,但是不能弄清楚为什么obj类型从一个dict变为一个列表,然后为什么我无法解析该列表.
这是一个链接到我正在使用的json:
http://hastebin.com/ratevimixa.tex
这里是我当前的代码:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import json
json_data = open('JubJubProductions.json','r+')
jdata = json.loads(json_data.read().decode("utf-8"))
def recursion(dict):
for key,value in dict.items():
if type(value) == type(dict):
if key != "paging":
for key,value in value.items():
if isinstance (value,list):
print key
# place where I need to enter list comprehension?
if type(value) == type(dict):
if key == "id":
print " id found " + value
if key != "id":
print key + " 1st level"
if key == "id":
print key
else:
if key == "id":
print "id found " + value
if __name__ == '__main__':
recursion(jdata)
————————————————– —————————————–更新
这是我正在使用的,它会返回一个id值,但不是全部:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import json
json_data = open('jubjubProductions','r+')
jdata = json.loads(json_data.read().decode("utf-8"))
def id_generator(d):
for k,v in d.items():
if k == "id":
yield v
elif isinstance(v,dict):
for id_val in id_generator(v):
yield id_val
if __name__ == '__main__':
for _ in id_generator(jdata):
print (_)