2016-09-20 45 views
0

我想讀混合CSV場,那裏有引號的字段和不帶引號的數值有以下:CSV打破了值非分隔符

from csv import reader 

bar = """1234,"abc,def","dasd",341234234""" 
foo = reader(bar) 
[x for x in foo] 

這將返回

[['1'], ['2'], ['3'], ['4'], ['', ''], ['abc,def'], ['', ''], ['dasd'], ['', ''], ['3'], ['4'], ['1'], ['2'], ['3'], ['4'], ['2'], ['3'], ['4']] 

我使用 富=讀者嘗試(酒吧,分隔符=」‘quotechar =’'「)

但它仍然打破了數字。基本上,我需要閱讀csv.QUOTE_NONNUMERIC來自作家的,但它沒有正確閱讀。

回答

2

csv閱讀器在文件對象上工作。這裏是你能做什麼

from csv import reader 
import StringIO 

bar = """1234,"abc,def","dasd",341234234""" 
f = StringIO.StringIO(bar) 
foo = reader(f, delimiter=',') 
print [x for x in foo] 

這會給你O/P

[['1234', 'abc,def', 'dasd', '341234234']] 

希望對你有用。

+0

我覺得它與輸入有關,但並不確定這是嚴格的類型 – rodling