我在下面有一本字典,我正在嘗試列印某一天的日期。但是,我得到了一個KeyError:
{
'length': 601,
'maxPageLimit': 2500,
'totalRecords': 601,
'data': [{'date': '2021-12-13', 'newCases': 97},
{'date': '2021-12-12', 'newCases': 64},
{'date': '2021-12-10', 'newCases': 108},
{'date': '2021-12-09', 'newCases': 129}]
}
例如,我希望能夠僅列印 2021-12-13 和 97
uj5u.com熱心網友回復:
date您的頂級字典中沒有鍵。您需要索引data,然后從該值中選擇一個字典,然后才能獲得date:
>>> dx = {
... 'length': 601,
... 'maxPageLimit': 2500,
... 'totalRecords': 601,
... 'data': [{'date': '2021-12-13', 'newCases': 97},
... {'date': '2021-12-12', 'newCases': 64}],
... }
>>> dx.get('data')
[{'date': '2021-12-13', 'newCases': 97}, {'date': '2021-12-12', 'newCases': 64}]
>>> dx.get('data')[0]
{'date': '2021-12-13', 'newCases': 97}
>>> dx.get('data')[0].get('date')
'2021-12-13'
另請注意,多個值不共享相同的鍵。您在一個串列中有多個字典,每個字典都有匹配的鍵 - 但它們不是同一個字典!
uj5u.com熱心網友回復:
按照當前的設定,您擁有最頂層的字典,其中包含以下鍵:length、maxPage、TotalyRecords 和 data。然后在資料內部,您有一個包含 2 個索引的串列,每個索引都是它自己的字典。
如果你想得到 12 月 13 日的字典,它是:
dict['data'][0] # First we go to the "data" key and get that. Then inside of the
data key we get index 0, which is {'date': '2021-12-13', 'newCases': 97}
例如,如果您特別想要新案件的數量,那就是:
dict['data'][0]['newCases'])
它只是在您擁有的嵌套字典和串列鏈中向下作業。盡管可能有更好的方法來完成您正在嘗試做的事情 tbh
uj5u.com熱心網友回復:
日期在您的程式中用作值,因此您需要使用某種回圈來訪問所需的日期。
for date in d['data']:
if date['date'] == foo:
# do your processing
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386405.html
