Python 如何将多个词典放入列表中

Python 如何将多个词典放入列表中,python,list,dictionary,Python,List,Dictionary,我创建了一本字典: new_list = {} 这就给了, {'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'populat

我创建了一本字典:

new_list = {}
这就给了,

    {'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}
    {'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}
    {'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}
[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}]
[{'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}]
[{'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}]
但是现在我想把这本字典添加到一个列表中

dataset= [new_list] 
这就给了,

    {'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}
    {'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}
    {'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}
[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}]
[{'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}]
[{'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}]
然而,我试图得到的结果是(因此在开始和结束时只有“[]”),因为这样我就可以执行dataset[0:2](否则它会给我“Nonetype”对象不可订阅),并且它只会给前两个字典

[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'},
{'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'},
{'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}]
我的代码如下:

import csv
def read_dataset() -> List[Dict[str,str]]:
    dataset = []
    with open('covid-19.csv', 'r') as file:
        reader = csv.reader(file)
        no_head = next(reader, None)
       
        for row in reader:
            lst = [
                'date',
                'day', 
                'month', 
                'year',
                'cases', 
                'deaths', 
                'countriesAndTerritories', 
                'countryTerritoryId', 
                'countryTerritoryCode', 
                'population2019', 
                'continent',
                'cumulativeper1000002Weeks',
            ]
            new_list = {}
            for x in range(len(lst)):
                new_list[lst[x]] = row[x]
            dataset= [new_list]
            #print(dataset)
            
dataset = read_dataset()
print(dataset[0:2])
不同之处在于,您必须使用:

dataset.append(new_list)

functon,它在新列表的末尾追加(这是一个dict,有点混乱,请注意变量名!)

与将其他内容的多个添加到列表中的方式相同。我知道,我重新使用了@Bows的代码,以便让他更清楚。更正命名并解释您在回答时为什么这样做是很好的。您可以使用
dict()
zip()
替换
for
循环:
dict(zip(lst,row[:len(lst)])
是的,命名是我的错,应该多加注意。新列表确实有效,但是print(数据集[0:2])给出了TypeError:“NoneType”对象是不可订阅的,我不知道如何修复它。编辑:我应该用return,谢谢你的回答。你错过了return语句,我把它添加到了答案中!