2013-04-20 52 views
0

我有一個csv文件,我正在解析它將這些內容讀入字典。但是,下面的代碼是給我的所有關鍵的每個值周圍的括號:值對:在將鍵值對插入字典之前刪除字符

import csv 

f = open(input('Which csv file: ')) 
cdata = csv.reader(f, delimiter = ';', quoting = csv.QUOTE_NONNUMERIC) 
cdict = {} 
for row in cdata:  
    cdict[row[0]] = row[1:] 
print(cdict) 
f.close() 

我曾嘗試:

for row in cdata: 
    row = "".join(row) 
    cdict[row[0]] = row[1:] 

但收到錯誤消息:

TypeError: sequence item 0: expected str instance, float found 

的因爲我讀取csv的內容而不是字符串是爲了首先刪除多餘的字符。我需要在字典中輸出最終的輸出,但不包含csv中的實際數字,即不包含引號或括號。

下面不會返回我要找的,但必須有這樣做的更pythonic的方法:

for row in cdata:  
    cdict[row[0]] = row.pop() 

例CSV數據:

Number;Value 
0;13.168159 
1;13.1681598889 
2;13.0313661591 
+0

csv有多少列?他們都是數字嗎? – jujaro 2013-04-20 21:56:44

+0

是的。兩列,除列標題外的所有數字。在csv的第一行中爲兩列指定標題。 – user2277435 2013-04-20 22:28:33

回答

0

由於只有兩列我認爲這是更pythonic

cdata = csv.reader(f, delimiter = ';', quoting = csv.QUOTE_NONNUMERIC) 
print dict(cdata)