如何在python中将字典的内容附加到列表中?
我正在读取一个csv文件filename.csv,我没有得到如下所示的预期结果如何在python中将字典的内容附加到列表中?,python,python-3.x,csv,dictionary,Python,Python 3.x,Csv,Dictionary,我正在读取一个csv文件filename.csv,我没有得到如下所示的预期结果 [{‘大陆’:‘欧洲’,‘国家’:‘西班牙’,‘首都’:‘马德里’,{‘大陆’:‘欧洲’,‘国家’,‘葡萄牙’,‘首都’:‘里斯本’,{‘大陆’:‘欧洲’,‘国家’:‘英格兰’,‘首都’:‘伦敦’}]将您的声明移动到dict_places循环内: import csv with open('filename.csv') as csv_file: datarow = csv.reader(filename,
[{‘大陆’:‘欧洲’,‘国家’:‘西班牙’,‘首都’:‘马德里’,{‘大陆’:‘欧洲’,‘国家’,‘葡萄牙’,‘首都’:‘里斯本’,{‘大陆’:‘欧洲’,‘国家’:‘英格兰’,‘首都’:‘伦敦’}]将您的声明移动到
dict_places
循环内:
import csv
with open('filename.csv') as csv_file:
datarow = csv.reader(filename, delimiter=',')
dict_places = {}
list_places = []
for row in datarow:
dict_places['Continent'] = row[0]
dict_places['Country'] = row[1]
dict_places['Capital'] = row[2]
print(list_places.append(dict_places))
否则,您只需在每次迭代中替换同一个字典中的值,最后得到同一个字典
的列表,就应该考虑使用这个。它将为你做艰苦的工作,并使像这样的错误不太可能发生。您只需传入列名列表:list_places = []
for row in datarow:
dict_places = {}
dict_places['Continent'] = row[0]
dict_places['Country'] = row[1]
dict_places['Capital'] = row[2]
print(list_places.append(dict_places))
印刷品:
import csv
with open(path) as csvfile:
rows = csv.DictReader(csvfile, ['Continent','Country', 'Capital'])
list_places = [dict(row) for row in rows]
print(list_places)
[{'Continent': 'Europe', 'Country': 'Spain', 'Capital': 'Madrid'},
{'Continent': 'Europe', 'Country': 'Portugal', 'Capital': 'Lisbon'},
{'Continent': 'Europe', 'Country': 'England', 'Capital': 'London'}]