Есть ли способ пропустить URL (файл Json), когда у меня нет доступа или нет доступной информации

#python #json #url #python-requests

#python #json #url #python-запросы

Вопрос:

Я запускаю функцию, которая извлекает файлы JSON из отдельных URL-адресов. Однако некоторые файлы больше не существуют или у меня нет доступа (на веб-странице отображается только «Не прошедший проверку подлинности»). В любом случае, по этому URL-адресу нет доступной информации. Я понимаю, что приведенные ниже if и else не имеют смысла, но я включил их, чтобы показать, что я пытаюсь сделать.

 def data (ticker):
    url = "https://eodhistoricaldata.com/api/fundamentals/{ticker}.LSE?api_token".format(ticker=ticker)

    with requests.get(url, verify=True) as response:
        data = response.json()
    
    if len(data)>1:
        print (data)
        
    else:
        skip
  

Ответ №1:

Вы можете проверить код состояния и решить, что делать в каждом конкретном случае. Например:

 def data(ticker):
    url = "https://eodhistoricaldata.com/api/fundamentals/{ticker}.LSE?api_token".format(ticker=ticker)

    with requests.get(url, verify=True) as response:
        if response.status_code == 401: 
            print("Not authorized")
        elif response.status_code == 404:
            print("Not found")
        else:
            data = response.json()
            # your logic
  

Вы можете изучить response объект и использовать его для определения более детального поведения (например: использовать reason атрибут или распечатать содержимое ответа).