При попытке использовать запросы python я получаю следующее: когда я пытаюсь убедиться, что запрос находится в формате json. Запрос при использовании requests.get(url) будет <Response [200]>.
Однако при использовании request.get(url).json() я получаю следующее:
File "/usr/local/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Печать requests.get(url).headers дает следующее:
{'Server': 'nginx/1.10.3 (Ubuntu)', 'Date': 'Mon, 01 Apr 2019 21:03:28 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 25 Mar 2019 21:25:01 GMT', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'ETag': 'W/"5c99472d-806"', 'Strict-Transport-Security': 'max-age=63072000; includeSubdomains', 'X-Frame-Options': 'DENY', 'X-Content-Type-Options': 'nosniff', 'Content-Encoding': 'gzip'}
Я пробовал обрезать определенные символы, такие как <, >, \, \0, но это не повлияло на результат.
Да, как я могу изменить это на application/json?
Ваш JSON, кажется, использует одинарные кавычки, попробуйте изменить тип контента на application/json, установите заголовок: Content-Type при обслуживании вашей страницы на application/json.
@PrestonHager это не json, это dict из запросов, представляющих заголовки ответов.
Как изменить тип контента?
@jordanm ой, это так. Однако, учитывая, что ошибка находится на символе 0, вероятно, отсутствует скобка или кавычка.
чувак. Где URL?






Ниже запрос должен работать.
import requests
requests.get(URL, headers = {'content-type':'application/json'}).json()
вы также можете использовать json.loads() для ответа.
Это дает тот же конечный результат: файл "/usr/lib/python3.5/json/__init__.py", строка 319, при загрузке возвращается файл _default_decoder.decode(s) "/usr/lib/python3.5/json/ decoder.py", строка 339, в decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.5/json/decoder.py" , строка 357, в raw_decode поднять JSONDecodeError («Ожидаемое значение», s, err.value) from None json.decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (char 0)
Я вижу, что мой исходный тип контента — «test/html» даже после добавления headers = {'accept': 'application/json'} к моим аргументам request.get.
Заголовки сервера в вашем ответе показывают, что тип контента —
text/html, а неapplication/json. Вы можете увидеть, что содержит тело, с помощью атрибута.content.