Почему я получаю эту ошибку? Есть ли другой способ, которым я могу преобразовать это в файл JSON?

import requests
import json

url = 'https://finance.yahoo.com/quote/AMZN/balance-sheet?p=AMZN&.tsrc=fin-srch'

r = requests.get(url)
r.json()
0
Den Fula Ankungen 29 Дек 2019 в 23:10
Проверить статус ответа. r.raise_for_status() вызовет исключение, если запрос не удался.
 – 
Iain Shelvington
29 Дек 2019 в 23:11
1
Может быть, он не возвращает json?
 – 
Tal Avissar
29 Дек 2019 в 23:15
1
Указанный вами URL-адрес не возвращает json, он просто возвращает HTML.
 – 
Chris Doyle
29 Дек 2019 в 23:27
@ChrisDoyle, да, а как мне преобразовать его в json?
 – 
Den Fula Ankungen
29 Дек 2019 в 23:27
3
Сначала вам нужно будет использовать синтаксический анализ html для извлечения нужной информации, после чего вы сможете делать с данными все, что захотите. Однако это другой вопрос. Что касается этого вопроса, ответ - это ошибка, которую вы получаете, потому что ваш ответ не является json, поэтому его нельзя проанализировать как json
 – 
Chris Doyle
29 Дек 2019 в 23:39

2 ответа

import json
import requests
 url = 'https://finance.yahoo.com/quote/AMZN/balance-sheet?p=AMZN&.tsrc=fin-srch'

response = requests.get(url)
json_data = json.loads(response.text)
0
Tal Avissar 29 Дек 2019 в 23:19

Короче говоря, URL возвращает HTML, а не json, поэтому вы не можете проанализировать его как JSON. Как я уже говорил в комментариях, если на этой странице есть определенные данные, которые вы хотите, вам потребуется использовать анализатор HTML для извлечения этой информации, тогда вы можете использовать любой код / модуль, который вам нравится, для анализа, просмотра, редактирования этих данных, однако это отдельный вопрос.

0
Chris Doyle 29 Дек 2019 в 23:40