2017-11-04 4 views
0

私はinput()メソッドからmy dictsにデータを取得し、そのリストを一つのリストに書き込みます。今私はCSVファイルから行のデータ行を辞書として読み込み、この辞書をリストに保存したいと考えています。辞書として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) 

今、私は私のコードには、このメソッドを追加します。

def import_csv(): 
    with open('list.csv') as csvfile: 

     reader = csv.DictReader(csvfile,delimiter=",") 

     kontaktbuch.append(list(reader)) 

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 

をしかし、このコードは、1つの指標にして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'}])] 

wic hの方法では、リストの1つのインデックスだけにdictを書くことはできますか?

+0

リーダーの行:kontaktbuch.append(row)? –

+0

'kontaktbuch.extend(reader)'を使用してください。 –

+0

両方の解決策が正しい出力をもたらしました。あなたに感謝@AntonvBR –

答えて

0

フル例:

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 

又は使用パンダ:

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リターン:

[{'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'}] 
関連する問題