#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, inresult.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)
Комментариев нет:
Отправить комментарий