Я работаю с несколькими веб-интерфейсами API, но у меня есть недоумение. Я не могу понять, что я ошибаюсь.Проблема с получением JSON с urllib.request
этот код работает только на одном api, но не на этом.
response = urllib.request.urlopen(self.query_base)
reader = codecs.getreader("utf-8")
obj = json.load(reader(response))
return obj
это дает мне следующую errror
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f602' in position 4096: character maps to <undefined>
Я пробовал:
response = urllib.request.urlopen(self.query_base)
obj = json.load(response.decode("utf-8"))
return obj
, который дает:
AttributeError: 'HTTPResponse' object has no attribute 'decode'
и,
response = urllib.request.urlopen(self.query_base).read()
obj = json.load(response)
return obj
который дает
AttributeError: 'bytes' object has no attribute 'read'
и,
response = urllib.request.urlopen(self.query_base)
obj = json.load(response)
который дает
TypeError: the JSON object must be str, not 'bytes'
наряду с maany других сочетаниях вещей, которые я нашел в других аналогичных нитей здесь
Я не помню, чтобы когда-либо сталкивался с этой проблемой, я уверен, что у меня что-то пропустило, но я не вижу, что.
одно, чтобы высматривать, URLLIB имеет тенденцию бежать в затруднение, когда он сталкивается с «недействительные» Ssl сертификаты на HTTPS URI. без надлежащих флагов он будет терпеть неудачу несколько бесшумно. –
Вы ** определенно ** у вас есть 'UnicodeEncodeError' из кода, который вы опубликовали? Я бы ожидал 'Unicode' **' Decode' ** 'Error' исключения. Пожалуйста, разместите ** полную ** трассировку для вашей ошибки, но я уверен, что ваш код работает, но вы попытались * распечатать * результаты. –
^хорошо, я буду изучать это. хотя, если я открываю URL-адрес браузера, он загружает json-файл и без проблем открывает его. – inadequateMonkey