python - 如何将多个字典放在一个列表中
问题描述
我创建了一个字典:
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'}
但现在我想把这本词典添加到列表中
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'}]
但是我试图得到结果(所以只有“[]”在开始和结束时),因为那样我可以做数据集[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])
解决方案
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.append(new_list)
#print(dataset)
return dataset
dataset = read_dataset()
print(dataset[0:2])
不同之处在于您必须使用:
dataset.append(new_list)
functon,它在末尾追加 new_list (这是一个字典,有点混乱,注意变量名!)
推荐阅读
- javascript - 减慢周期(for of)?
- python - 在python中计算子目录
- mysql - MySQL查询返回最不匹配条件的行
- php - 切换到 php 7 后 $.getJSON 不起作用
- python - 使用不带参数的 ElementTree 的 iter() 解析 XML,不会返回文件中的前几个标签
- google-cloud-platform - “资源项目的权限被拒绝” - 激活服务帐户后无法使用 cURL 调用已部署的模型
- python - 如何在 python-telegram-bot 中接收来自用户的消息?
- flutter - 从firestore获取最后一条消息
- react-native - React Native Prettier 格式错误。我们如何解决它
- python - Python TA-Lib RSI 错误结果