当多个值共享同一个键时如何从字典中打印项目
How to print items from a dictionary when multiple values share the same key
我在下面有一本字典,我正在尝试打印某一天的日期。但是,我收到 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
日期在您的程序中用作值,因此您需要使用某种循环来访问所需的日期。
for date in d['data']:
if date['date'] == foo:
# do your processing
按照当前的设置,您拥有最顶层的字典,其中包含以下键:长度、最大页数、TotalyRecords 和数据。然后在数据内部,你有一个包含 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
您的顶级词典中没有 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'
另外请注意,多个值不会共享同一个键。您在一个列表中有多个词典,每个词典都有匹配的键 - 但它们不是同一个词典!
我在下面有一本字典,我正在尝试打印某一天的日期。但是,我收到 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
日期在您的程序中用作值,因此您需要使用某种循环来访问所需的日期。
for date in d['data']:
if date['date'] == foo:
# do your processing
按照当前的设置,您拥有最顶层的字典,其中包含以下键:长度、最大页数、TotalyRecords 和数据。然后在数据内部,你有一个包含 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
您的顶级词典中没有 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'
另外请注意,多个值不会共享同一个键。您在一个列表中有多个词典,每个词典都有匹配的键 - 但它们不是同一个词典!