Diğer şeylerin yanı sıra isimleri ve telefon numaralarını içeren bir csv dosyası var. Sadece telefon numaram varsa sadece bir isimle ilgileniyorum.Bir csv'den birkaç satır nasıl okunur?
user_data = {}
with open(phone_numbers) as f:
reader = csv.DictReader(f)
user_data['Name'] = [record['Name'] for record in reader if record['phone']]
user_data['phone'] = [record['phone'] for record in reader if record['phone']]
Ama ikinci öğe için boş bir dize var, record
bir jeneratör olduğunu tahmin ediyorum ve:
with open(phone_numbers) as f:
reader = csv.DictReader(f)
names = [record['Name'] for record in reader if record['phone']]
Ama aynı zamanda ilgili telefon numarasını istiyorum, bu deneyin ettik Bu yüzden iki kez tekrarlayabilirim.
Ben ettik dizilerini kullanmayı deneyin, ama sadece bu şekilde çalışmış: Bu durumda
user_data = {}
with open(phone_numbers) as f:
reader = csv.DictReader(f)
user_data['Name'] = [(record['Name'],record['phone']) for record in reader if record['phone']]
Ben iki değişken,
phone
ve
Name
user_data['Name']
saklanan var benim istediğim değil.
Ve çalışırsanız bu:
user_data = {}
with open(phone_numbers) as f:
reader = csv.DictReader(f)
user_data['Name'],user_data['phone'] = [(record['Name'],record['phone']) for record in reader if record['phone']]
aşağıdaki hata var:
ValueError: too many values to unpack
Düzenleme:
: Bu tablonun bir örnek
+ -------- + --------------- +
| Telefon | Sayı |
+ -------- + --------------- +
| Luis | 000 111 22222 |
+ -------- + --------------- +
| Paul | 000 222 3333 |
+ -------- + --------------- +
| Andrea | |
+ -------- + --------------- +
| Jorge | 111 222 3333 |
+ -------- + --------------- +
Tüm satırların bir adı vardır, ancak hepsinin telefonları yoktur.
Listeyi son satırda aktarmak için zip (*) 'yi deneyin. –
Bu cevabı kontrol edin http://stackoverflow.com/questions/5466618/too-many-values-to-unpack-iterating-over-a-dict-key-string-value-list – mk2
Verilerinizi bir sütun olarak açıklayabilir misiniz? veya birden fazla ve aynı satırda birden fazla telefon numarası ve isim varsa? – PyNEwbie