【发布时间】:2021-02-08 21:01:38
【问题描述】:
所以基本上,我正在尝试编写一个从 json 文件中获取字典的代码。该词典包含其他词典、列表等... 我正在尝试从 json(results,x1,x2,x3,y1,y2,a1,b1) 中获取所有键,并在检查嵌套字典和列表时显示每个键出现了多少次。
代码:
# open data
import json
with open('list.json') as f:
my_dict = json.load(f)
k=int()
def count_k_v(k):
keys=0
if type(k)==dict:
for value in k.keys():
if isinstance(k[value], (dict,list)):
keys+=1
k=count_k_v(k[value])
keys+=k
else:
keys+=1
elif type(k)==list:
for value in k:
if isinstance(value,(list,dict)):
k=count_k_v(value)
keys+=k
else:
keys+=1
return keys
#['results','x1','x2','y1','x3','y2','a1','b1']
for key, value in my_dict:
print("{}".format(key,value))
#FOUND 8 KEYS.
print("Found {} keys.",count_k_v(my_dict))
#RESULTS FOUND 1 TIME
#X1 KEY FOUND 1 TIME
#X2 KEY FOUND 1 TIME
#Y1 KEY FOUND 1 TIME
#X3 KEY FOUND 1 TIME
#Y2 KEY FOUND 1 TIME
#A1 KEY FOUND 1 TIME
#B1 KEY FOUND 1 TIME
for key in my_dict:
JSON:
{
"results":[
{
"x1":5
},
{
"x2":5,
"y1":[
1,
2,
3
]
},
{
"x3":5,
"y2":{
"a1":2,
"b1":67
}
}
]
}
尝试打印:
['results','x1','x2','y1','x3','y2','a1','b1']
FOUND 8 KEYS.
RESULTS FOUND 1 TIME
X1 KEY FOUND 1 TIME
X2 KEY FOUND 1 TIME
Y1 KEY FOUND 1 TIME
X3 KEY FOUND 1 TIME
Y2 KEY FOUND 1 TIME
A1 KEY FOUND 1 TIME
B1 KEY FOUND 1 TIME
【问题讨论】:
标签: python json list dictionary