2012-06-03 108 views
0

我试图做一个简单的CSV使用python分析,我有以下代码:蟒蛇CSV不解析分隔符

print csvdata 
print "\n" 
csvparsed = csv.reader(csvdata) 

for row in csvparsed: 
    print row 

然而,似乎所分析的数据中的每一行是单个字符,而不是用逗号分隔。我在这里错过了什么吗?这是我得到的输出:

Restaurant ID,2,, 
,,, 
Menu Name,Breakfast Menu,, 

['R'] 
['e'] 
['s'] 
['t'] 
['a'] 
['u'] 
['r'] 
['a'] 
['n'] 
['t'] 
[' '] 
['I'] 
['D'] 
['', ''] 
['2'] 
['', ''] 
['', ''] 
[] 
['', ''] 
['', ''] 
['', ''] 
[] 
['M'] 
['e'] 
['n'] 
['u'] 
[' '] 
['N'] 
['a'] 
['m'] 
['e'] 
['', ''] 
['B'] 
['r'] 
['e'] 
['a'] 
['k'] 
['f'] 
['a'] 
['s'] 
['t'] 
[' '] 
['M'] 
['e'] 
['n'] 
['u'] 
['', ''] 
['', ''] 

回答

4

csv.reader是为了给予在文本行的迭代器,这是一个开放的文件是如何工作的。你给它一个字符串,当你迭代它时会产生字符。如果您从文件中获取数据,只需将打开的文件提供给csv.reader,则不要先阅读文本。

如果你确实已经在一个字符串文本,然后使用此:

csv.reader(csvdata.splitlines()) 
0

这可能是更接近你想要做什么:

csvparsed = csv.reader(open('csvdata', 'r')) 

for row in csvparsed: 
    print row 

有了这个,和您的示例数据在一个文件中,我得到这个输出:

['Restaurant ID', '2', '', ''] 
['', '', '', ''] 
['Menu Name', 'Breakfast Menu', '', ''] 
+0

我的问题是,数据已经是一个字符串的形式,而不是在一个文件 – swoosh