Задать вопрос
@saalaus

Проблема с кодировкой при запросе api VK в Python?

Делаю запрос на метод messages.getConversations, а в консоли выходит ошибка с кодировкой
param = dict(access_token = 'mytoken',
            version = 5.95,
            count = 10
            )

chat = requests.get('https://api.vk.com/method/messages.getConversations', param)

print(chat.text)


ошибка
Traceback (most recent call last):
File "C:\Users\User\Desktop\main.py", line 22, in <module>
print(chat.text)
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\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 '\U0001f4cc' in position 6739: character maps to <undefined>


добавил
print(chat.text.encode("utf-8"))

однако теперь я не могу преобразовать его в JSON объект, а символы вроде "\U0001f4cc" остались вместо русских букв.
Как мне заставить появится русские буквы и получить JSON объект?
  • Вопрос задан
  • 674 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@ElefanObi
encode() надо использовать вместе с decode(), тогда консоль напечатает все, что надо:
"\U0001f4cc".encode(encoding='utf-8').decode()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
Какую кодировку использует консоль для вывода?
вот что консоль не может отпечатать
pushpin.png
При дампе в json установите ensure_ascii=False, но учтите, что не все редакторы текста смогут корректно отобразить некоторые символы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы