У меня есть файл с кодировкой latin1. Как сделать следующий код с csv
?Кодирование csvreader
>>> import csv
>>> with open(filepath, 'rb') as csvfile:
... reader = csv.DictReader(csvfile, delimiter='\t', encoding='iso-8859-1')
У меня есть файл с кодировкой latin1. Как сделать следующий код с csv
?Кодирование csvreader
>>> import csv
>>> with open(filepath, 'rb') as csvfile:
... reader = csv.DictReader(csvfile, delimiter='\t', encoding='iso-8859-1')
Вот как вы можете это сделать:
def Latin1ToUnicodeDictReader(latin1_data, **kwargs):
csv_reader = csv.DictReader(latin1_data, **kwargs)
for row in csv_reader:
yield {key: value.decode('iso-8859-1').encode('utf8') if value else value for key, value in row.iteritems()}
reader = Latin1ToUnicodeDictReader(csvfile, delimiter='\t')
with open(filepath, "r", encoding="ISO-8859-1") as csvfile:
reader = csv.DictReader(csvfile)
Это действительно не сработало, когда я попробовал. Также, я думаю, вы имеете в виду 'codes.open'? – David542
ли вы имеете в виду 'кодирование = 'латино-1''? Извините, я не вижу трудности ... – Basic
@Basic 'csv'.'DictReader' не позволяет устанавливать кодировку в качестве параметра. – David542
А, ок. Вам нужно будет сделать что-то вроде [this] (http://stackoverflow.com/a/5005573/156755) – Basic