2017-07-03 119 views
0

的詞典我有SAT成績的格式的CSV文件:所有五十個州讀csv文件到嵌套列表

的稅率口頭數學

和相應的值。我需要一本字典。數據的字典格式是列名稱作爲鍵,然後是每個下面的數據作爲該鍵的值列表。我能夠以正確的格式打印列表,但列表未鏈接到字典中的鍵字典在那裏,但空着。經過多次嘗試不同的方法,這是最好的,我想出了:

with open('../sat_scores.csv', mode='r') as f: 
    sat= {}           
    label_line =[]         
    reader = csv.reader(f)       
    count = 0           
    for row in reader:     
     print(row) 
     if count == 0:         
      for item in row:       
       item = sat.keys      
     count +=1         
    for row in reader: 
     for key in sat.keys:      
      for score in row:      
       sat[key].append(score) 
    print(sat)        

有什麼建議嗎?

+0

究竟你的數據是什麼樣的?每個州只有一行?你的CSV可以有多行的狀態?丟失數據怎麼辦? –

回答

0

假設你的行是唯一的,這應該這樣做:

with open('../sat_scores.csv', mode='r') as f: 
    sat = {}                       
    for row in csv.reader(f):     
     sat[row[0]] = row[1:] 

row是一個列表。 row[0]有你的州的名字。 row[1],row[2]row[3]還有其他的一切。您可以使用列表切片並輸入State : <List of data>

你完成了。很高興知道item = sat.keys不符合您的期望。 keys是字典的函數,並且您將函數分配給變量。看看這個:

>>> sat = {} 
>>> sat.keys 
<built-in method keys of dict object at 0x101b81c08> 

,你應該做的是什麼東西沿着這些路線:

>>> row = ['OH', '88%', 200, 180] 
>>> sat[row[0]] = row[1:] 
>>> sat 
{'OH': ['88%', 200, 180]} 
+0

你的評論是否意味着它會是items = keys然後 –

+0

不!你並不需要在所有:)一個'item'變量當創建一個鍵值對,你必須共同指定密鑰和值。 –

+0

@RobertDwyer希望我的編輯清除的東西了。 –