Найти - Пользователи
Полная версия: проблема с кодировкой requests
Начало » Network » проблема с кодировкой requests
1
Randommist
использую python 3.7.3

ос Windows 7

работаю с requests

Мне в headers нужно указать кое какой атрибут равный строке с содержанием “…” или же u“\u2026” этого символа. когда я выполняю программу пишет ошибка:

UnicodeEncodeError: ‘latin-1’ codec can't encode character ‘\u2026’ in position 30: ordinal not in range(256)

вот пример кода:


import requests

header = {
'test' : ‘…’,
}

html = requests.get('https://www.google.com/', headers = header).text

>>>UnicodeEncodeError: ‘latin-1’ codec can't encode character ‘\u2026’ in position 30: ordinal not in range(256)

прошу помочь
ZiG
Я не спец, но ваш код вызвал у меня ошибку синтаксиса.
Переправил его:
 import requests
header = {
'test': "‘…’",
}
html = requests.get('https://www.google.com/', headers = header).text
И тогда возникла та же ошибка что у вас, помогло указание нормального headers
 import requests
headers={"content-type":"text"}
html = requests.get('https://www.google.com/', headers = headers).text
print(html)
JOHN_16
Вообще в заголовках нужно использовать ASCII символы (насколько это явно прописано в стандарте я не смотрел). Поэтому когда вы туда поставляете обычный текст внутри requests он конвертируется неудачно. Одно из решений использовать всякие MIME кодировки и тп, что там стандарт позволяет.
А воообще обычно это не нужно, исключение частое это имена фалов - и вот этот вопрос явно хорошо гуглится.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB