[英]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.