簡體   English   中英

讀取json文件python

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM