将csv文件读入嵌套列表的字典

时间:2017-07-03 14:25:02

标签: python csv dictionary

我有一个sat分数的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)                            

有什么建议吗?

1 个答案:

答案 0 :(得分: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是dict的函数,您将函数赋给变量。看看这个:

>>> 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]}