我对python很新,可能真的需要一些帮助(我现在找不到任何帮助我的东西)。
我想将csv文件读取到list
,但不幸的是我的输出不符合预期。而不是像以下列表:
[[Weiz;61744],[Deutschlandsberg;5645]]
我有一个如下所示的列表:
[['W'],['e'],['i'], etc.]
我的代码如下所示:
def readCSV(file):
for row in open(file,"r+"):
ftpstream = urllib.request.urlopen(row)
csvFile = csv.reader(ftpstream.read().decode('latin-1'))
data = [row for row in csvFile]
for row in data:
print(row)
任何人都可以告诉我它为什么不起作用?我现在真的很挣扎......
答案 0 :(得分:5)
函数csv.reader
期望接收行列表,而不是单个字符串(例如ftpstream.read().decode('latin-1')
将返回的行)。如果你替换:
csvFile = csv.reader(ftpstream.read().decode('latin-1'))
与
csvFile = csv.reader(ftpstream.read().decode('latin-1').split('\n'))
我相信它会按预期工作。
答案 1 :(得分:0)
根据您的文件,我认为使用readLine()
代替read()
会让您获得所需内容。例如:
csvFile = csv.reader(ftpstream.readLine().decode('latin-1'))
而不是
csvFile = csv.reader(ftpstream.read().decode('latin-1'))