我有一个带有unicode字符(西班牙语字符)的CSV。尝试将其导入utf8编码的postgres表中。以下代码:
reader = csv.reader(open(filename, 'r'), delimiter=',')
for row in reader:
values = [None if x == '' else x for x in row]
query = 'INSERT INTO %s.rosters VALUES(%s)' % (self.schema, ','.join(['%s'] * len(values)))
self.executequery(query, values)
产生ERROR: invalid byte sequence for encoding "UTF8": 0xf1616461
。因此,将其更改为:
产量'utf8' codec can't decode bytes in position 21-24: invalid data
有没有办法解决这个问题?在
更新文件不是UTF-8;而是Windows-1252。将值列表的赋值更改为:
values = [None if x == '' else unicode(x, 'cp1252') for x in row]
解决问题!在
你知道CSV文件是用UTF-8编码的吗?如果是的话,你会看到这样的情况:
如果它没有说UTF-8,那么您可能需要用不同的编解码器来解码它,比如ISO-8859-1。在
相关问题 更多 >
编程相关推荐