我试图用Python解析CSV文件,到目前为止,它返回了一个单独的字符列表,但显然我不能将字符列表连接成一个字符串。当我尝试这样做时,我的记录器根本不记录任何内容。这是代码:
def action_import(self):
f = self.import_file.decode('base64')
reader = csv.reader(f)
new_reader = []
for row in reader:
new_reader += row
_logger.debug("NEW READER")
_logger.debug(new_reader) #returns a list of individual characters
string = "I'm a string"
for char in new_reader:
_logger.debug("HERE IS A CHAR")
_logger.debug(char) #returns an individual char with no quotation marks
string += str(char)
_logger.debug("THE STRING")
_logger.debug(string) #returns nothing
_logger.debug(new_reader)
的输出与单个字符列表如下所示:
['\xef', '\xbb', '\xbf', 'P', 'r', 'o', 'd', 'u', 'c', 't', '', '', 'Q', 't', 'y', '', '', 'P', 'r', 'i', 'c', 'e', '', '', 'P', 'r', 'i', 'c', 'e', ' ', 'P', 'e', 'r', ' ', 'U', 'n', 'i', 't', '', '', 'P', 'u', 'b', 'l', 'i', 'c', ' ', 'P', 'r', 'i', 'c', 'e', 'A', 'T', 'O', 'R', 'V', 'A', 'S', 'T', 'A', 'T', 'I', 'N', ' ', '2', '0', ' ', 'M', 'G', ' ', 'T', 'A', 'B', 'L', 'E', 'T', '', '', '3', '0', '', '', '1', '0', '', '', '0', '.', '3', '3', '3', '3', '3', '3', '3', '3', '3', '', '', '0', '.', '3', '3', '3', '3', '3', '3', '3', '3', '3']
我也尝试过''.join(new_reader)
,但同样的事情发生在记录器甚至没有记录结果的地方。
我做错了什么?谢谢!
答案 0 :(得分:0)
str.decode()
它在您的案例中将self.import_file
视为字符串。
csv.reader()
将csvfile
作为参数,csvfile
是一个支持迭代器协议的对象,每次调用next()方法时都会返回一个字符串。
您意外地将字符串作为csvfile
传递给csv.reader()
,例如:
>>> f = csv.reader("abc")
>>> for row in f:
... print row
...
['a']
['b']
['c']