У меня есть CSV с символом Unicode (испанский - символ).Попытка импортировать это в таблицу postgres в кодировке utf8.Следующий код:
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
.Итак, изменив его на:
reader = csv.reader(open(filename, 'r'), delimiter=',')
for row in reader:
values = [None if x == '' else unicode(x, 'utf-8') for x in row]
query = 'INSERT INTO %s.rosters VALUES(%s)' % (self.schema, ','.join(['%s'] * len(values)))
self.executequery(query, values)
Выход 'utf8' codec can't decode bytes in position 21-24: invalid data
Есть ли способ решить эту проблему?
update Файл не былUTF-8;это была Windows-1252.Изменение назначения списка значений на:
values = [None if x == '' else unicode(x, 'cp1252') for x in row]
Исправляет проблему!