2017-07-03 81 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希望我的编辑清除的东西了。 –