#python #python_3x #utf_8 #unicode
Требуется пропарсить vk по заданым параметрам и записать результат в файл на Python 3.5.
search_result = api.users.search(sort=sort_index, sex=sex_index, age_to=age_index,
offset=offset_index, count=count_index, country=country)
result = open('result.txt','a')
while index != (count_index - offset_index):
result.write(str(search_result[index + 1]))
result.write('\n')
index += 1
result.close()
Получаю ошибку:
Traceback (most recent call last):
File "E:***\vkscript.py", line 19, in
result.write(str(search_result[index + 1]))
File "C:\Python\lib\encodings\cp1251.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u039a' in position 16:
character maps to
Ответы
Ответ 1
Надо попробовать указать кодировку файла result = open('result.txt','a', encoding='utf-8')Ответ 2
Добавьте параметр encoding. Просто, по умолчанию там взялась кодировка cp1251: open('result.txt', mode='a', encoding='utf8') И чтобы не пришлось вручную вызывать close, используйте менеджер контекста, он сам закроет: with open('result.txt', mode='a', encoding='utf8') as f: while index != (count_index - offset_index): f.write(str(search_result[index + 1])) f.write('\n') index += 1Ответ 3
Мне помогло: with open('books.csv', 'wt', encoding='utf8') as fout: fout.write(books)
Комментариев нет:
Отправить комментарий