[英]Read from CSV file as dictionary and append it into a list
I get the data in to my dicts from the input() method and write the dicts in to a one list. 我从input()方法获取数据到我的字典中,然后将字典写入一个列表中。 Now I want to read from a CSV file the datas row for row as a dictionary and save this dictionaries in to the list.
现在,我想从CSV文件中逐行读取数据作为字典,并将此字典保存到列表中。
kontaktbuch = []
kontakt = {'Anrede': anrede,'Vorname': vorname_kontakt, 'Nachname': nachname_kontakt, 'Strasse': strasse, 'Hausnummer': hausnummer, 'PLZ': plz, 'Stadt' : stadt, 'Telefon1': telefon1, 'Telefon2': telefon2, 'E-Mail': email}
kontaktbuch.append(kontakt)
Now I add this method in to my code: 现在,我将此方法添加到我的代码中:
def import_csv():
with open('list.csv') as csvfile:
reader = csv.DictReader(csvfile,delimiter=",")
kontaktbuch.append(list(reader))
The CSV file content: CSV文件内容:
Anrede,Vorname,Nachname,Strasse,Hausnummer,PLZ,Stadt,Telefon1,Telefon2,E-Mail
213,213,2323,2323,2323,23232,323232,23232,32323,2313
sadsad,sadad,adada,dsadasada,sadadsa,sadsada,sadsad,sadsad,asaas,ds
But this code put all of the dictorinaries in to one index at the list: 但是,此代码将所有dictorinaries放在列表的一个索引中:
[(0, [{'Strasse': '2323', 'Stadt': '323232', 'Nachname': '2323', 'Telefon1': '23232', 'PLZ': '23232', 'Anrede': '213', 'Telefon2': '32323', 'Hausnummer': '2323', 'E-Mail': '2313', 'Vorname': '213'}, {'Strasse': 'dsadasada', 'Stadt': 'sadsad', 'Nachname': 'adada', 'Telefon1': 'sadsad', 'PLZ': 'sadsada', 'Anrede': 'sadsad', 'Telefon2': 'asaas', 'Hausnummer': 'sadadsa', 'E-Mail': 'ds', 'Vorname': 'sadad'}]), (1, [{'Strasse': '2323', 'Stadt': '323232', 'Nachname': '2323', 'Telefon1': '23232', 'PLZ': '23232', 'Anrede': '213', 'Telefon2': '32323', 'Hausnummer': '2323', 'E-Mail': '2313', 'Vorname': '213'}, {'Strasse': 'dsadasada', 'Stadt': 'sadsad', 'Nachname': 'adada', 'Telefon1': 'sadsad', 'PLZ': 'sadsada', 'Anrede': 'sadsad', 'Telefon2': 'asaas', 'Hausnummer': 'sadadsa', 'E-Mail': 'ds', 'Vorname': 'sadad'}])]
With wich method can I write a dict only to a one index at the list? 使用wich方法,我可以只将字典写到列表中的一个索引吗?
Full example: 完整示例:
import csv
import io
s = u"""Anrede,Vorname,Nachname,Strasse,Hausnummer,PLZ,Stadt,Telefon1,Telefon2,E-Mail
213,213,2323,2323,2323,23232,323232,23232,32323,2313
sadsad,sadad,adada,dsadasada,sadadsa,sadsada,sadsad,sadsad,asaas,ds"""
kontaktbuch = []
reader = csv.DictReader(io.StringIO(s),delimiter=",")
for row in reader:
kontaktbuch.append(row)
# or
# kontaktbuch.extend(reader) suggested by juanpa.arrivillaga
or using pandas: 或使用熊猫:
import pandas as pd
import io
s = u"""Anrede,Vorname,Nachname,Strasse,Hausnummer,PLZ,Stadt,Telefon1,Telefon2,E-Mail
213,213,2323,2323,2323,23232,323232,23232,32323,2313
sadsad,sadad,adada,dsadasada,sadadsa,sadsada,sadsad,sadsad,asaas,ds"""
kontaktbuch = pd.read_csv(io.StringIO(s)).to_dict("r")
kontaktbuch return: kontaktbuch返回:
[{'Anrede': '213',
'E-Mail': '2313',
'Hausnummer': '2323',
'Nachname': '2323',
'PLZ': '23232',
'Stadt': '323232',
'Strasse': '2323',
'Telefon1': '23232',
'Telefon2': '32323',
'Vorname': '213'},
{'Anrede': 'sadsad',
'E-Mail': 'ds',
'Hausnummer': 'sadadsa',
'Nachname': 'adada',
'PLZ': 'sadsada',
'Stadt': 'sadsad',
'Strasse': 'dsadasada',
'Telefon1': 'sadsad',
'Telefon2': 'asaas',
'Vorname': 'sadad'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.