2016-06-20 12 views
0

Ich versuche, eine csv in ein Wörterbuch in Pythoneine csv Lesen mit bestimmten Spaltenwert Wörterbuch als Schlüssel

Name Value time count 
sample A  00:00 45 
sample A  01:00 46 
sample A  02:00 50 
sample A  03:00 85 
sample A  04:00 87 
abb  B  00:00 40 
abb  B  01:00 55 

ich die Ausgabe sein wollen zu lesen:

{ A:[{time:00:00 ,count:45},{time:01:00,count:46},{time:02:00,count:50}]} 

kann jemand helfen ich, wie man die Ausgabe bekommt?

Ich versuchte mit Dikt Verständnis Ich bin in der Lage, die CSV zu einem Wörterbuch mit Schlüssel als Spaltenüberschriften lesen und Wert als Zeile, aber nicht sicher, wie die obige Ausgabe zu erhalten.

+0

Sie Ihren Code hinzufügen können, damit wir wissen, wo sie am besten beraten zu. Ihre "wollte" -Ausgabe ist kein gültiges Python-Diktat, ich denke - aber Sie sollten sagen, dass die "Zeiten" Strings sein werden, wie die Schlüssel, also wie Sie wollen: '{'A': [{'time' : '00: 00 ',' count ': 45 ...}} 'so gruppiert nach' Value 'Werten, Liste der Dicts für Zeit und Anzahl ignoriert die" Name "Spalten Werte. Bitte bearbeiten Sie die Frage entsprechend. Vielen Dank. – Dilettant

Antwort

0

lesenen Datei geteilt dann zu abstrahieren Schlüssel und Wert

with open(file,'rb') as f: 
res = {} 
reader = csv.reader(f) 
for i,line in enumerate(reader): 
    if i == 0: continue 
    keyWord = line.split(' ')[1] 
    timeKeyword = 'time:' + line.split(' ')[2] 
    countValue = line.split(' ')[3] 
    res[keyWord ] = res.get(keyWord,[]) + [{timeKeyword : int(countValue)}] 
Verwandte Themen