#python #python-3.x #python-requests
#python #python-3.x #python-запросы
Вопрос:
В качестве заголовка я хочу «запросы.получение и анализ ответа на json». Вот способы, которыми я пытался это сделать
- Используя request().json()
requests.get(url = "https://ac.dict.naver.com/linedictweb/ac?q=海amp;st=010amp;r_lt=000amp;q_enc=UTF-8amp;r_format=jsonamp;r_enc=UTF-8amp;_t=1599558293560amp;_callback=jQuery111104358648061767311_1599558261058amp;_=1599558261060",verify = True).json()
=>Result: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2. Другой способ
r = requests.get(url = "https://ac.dict.naver.com/linedictweb/ac?q=海amp;st=010amp;r_lt=000amp;q_enc=UTF-8amp;r_format=jsonamp;r_enc=UTF-8amp;_t=1599558293560amp;_callback=jQuery111104358648061767311_1599558261058amp;_=1599558261060",verify = True)
json.loads(r.content.decode('utf-8'))
=> RESULT: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Данные в формате Json здесь:
Помогите мне решить эту проблему. Спасибо
Комментарии:
1. Ответ не является допустимым JSON; это JSON, завернутый во что-то другое.
Ответ №1:
Обратный вызов jquery завершает вывод. Избавьтесь от параметра обратного вызова в URL, и вы получите действительный json:
r = requests.get(url = "https://ac.dict.naver.com/linedictweb/ac?q=海amp;st=010amp;r_lt=000amp;q_enc=UTF-8amp;r_format=jsonamp;r_enc=UTF-8amp;_t=1599558293560",verify = True)
r.json()
{
"query": [
"u6d77"
],
"items": [
[],
[
[
[
"zh"
],
[
"597527adbb7248c3ae80d60b9acd7160"
],
[
"u6d77"
],
[
" ocean; extra large"
],
...
}
Комментарии:
1. Ошибка выше была очевидной, но я этого не осознавал. Я только что удалил «_callback = jQueryxxx» из URL. Возможно, я слишком нервничал. Большое вам спасибо.