2016-10-14 113 views
0

请,我需要读取CSV文件并将结果转换为字典。将cvs文件读取到字典python

文件输入:

enter image description here

阅读像下面后所需的对象:

defaultdict(<type 'dict'>, {‘Book’: {‘Book’: 1.0, ‘Afnan’: 0, ‘Location’: 0, ‘Love’: 0}, ‘Afnan’: {‘Book’: 0, ‘Afnan’: 1.0, ‘Location’: 0.71, ‘Love’: 0}, ‘Location’: {‘Book’: 0, 'Afnan’: 0.71, ‘Location’: 1.0, ‘Love’: 0}, ‘Love’: {‘Book’: 0, ‘Afnan’: 0, ‘Location’: 0, ‘Love’: 1.0}}) 

我下面写代码,但不工作,因为我想要的东西。请帮忙。

reader = unicode_csv_reader(open('cos3.csv')) 
x=list(reader) 
for i in x: 
    if isinstance(i,float): 
     arr=np.array(x).astype('float') 
    else: 
     arr=np.array(x).astype('string') 
d=defaultdict(dict) 
for a in arr: 
    for b in arr: 
     d[a][b]=arr(a) 
+0

电子表格的图像**不是** csv文件的正确表示。它不显示分隔符和最终引号,相反,它可以让我们认为表单的名称(这里是表1)在文件中。下一次,请显示文本编辑器(记事本,vi等)将显示的内容。 –

回答

0

我总是用csv.DictReader然后生成字典你想要像这样的格式:

enter image description here

import csv 
import os 
cwd = os.getcwd() 


d_out = {} 
with open(cwd+'\\example.csv', 'rb') as file_in: 
    reader = csv.DictReader(file_in, restkey=None, restval=None, dialect='excel') 
    for row in reader: 
     d_out.setdefault(row['Key'], {'Book':row['Book'], 'Afnan':row['Afnan'], 'Location':row['Location'], 'Love':row['Love']}) 


print d_out 

希望这有助于!