[英]reading json file python
js = {"Alex":{"b_":{"ep_0":"[1,2,3]"}, "g_":{"ep_0":"[3,4,5]"}, "f_":{"ep_0":"[3,4,5]", "ep_1":"[3,4,5]"}},
"Sam":{"b_":{"ep_0":"[1,2,3]"}, "g_":{"ep_0":"[3,4,5]"}},
"Joe":{"b_":{"ep_0":"[1,2,3]"}, "g_":{"ep_0":"[3,4,5]"}, "f_":{"ep_1":"[31,44,56]"}}
}
我需要为每个用户阅读ep_0和ep_1,这是我的摘录代码:
users = [i for i in js.keys()]
data = {}
final_data = {}
for key in users:
for user in js[key].keys():
if 'f_' not in key:
continue
for z in js[users]['f_']:
if 'ep_0' not in z:
continue
data['ep0'] = js[user]['f_']['ep_0']
if 'ep_1' not in z:
continue
data['ep1'] = js[user]['f_']['ep_1']
final_data[user] = data
print(final_data)
我的代码的输出为{},期望的输出应为:
{'Alex': {'f_':{'ep_0':'[3,4,5]', 'ep_1':'[3,4,5]'}}, 'Joe': { 'f_':{'ep_1':'[31,44,56]'}} }
这是我为您解决的简单方法。
final_data = {}
for user in js.keys():
if 'f_' not in js[user]:
continue
final_data[user] = { "f_": js[user]['f_']}
print(final_data)
产量
{'Alex': {'f_': {'ep_0': '[3,4,5]', 'ep_1': '[3,4,5]'}}, 'Joe': {'f_': {'ep_1': '[31,44,56]'}}}
我认为您最明显的问题是
users = [i for i in js.keys()]
...
for z in js[users]['f_']:
users
是字典中格式不正确的键列表。 您对js[users]
期望是什么?
但是,您的第一个问题是组合
for key in users:
for user in js[key].keys():
if 'f_' not in key:
users
是姓名列表:Alex,Sam,Joe。 您希望如何在该列表中找到f_
? 您错误地连接了变量。
我强烈建议您从编码开始。 采用增量编程 。 编写几行代码,即可完成过程的一个步骤。 插入print
语句以测试它们是否达到了您的期望。 只有在证明了这一点之后,您才能添加更多行。
您在这里面临的问题是您一次编写了太多代码,犯了一些错误,并且现在您处于一种无法获得任何合理输出的情况。
去过那里,做到了,从我的尝试到我自己的创作,我都有太多的T恤。
我在代码中的几个地方看到了js[users]
。 您可能是js[user]
,因为users
只是js
的键列表,而不是键本身。 尝试修复该问题,看看是否有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.