#python #json
Вопрос:
import requests headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"} url = f'https:............' response = requests.get(url, headers=headers).json() events = response['events'] for event in events: List_of_Urls = [] List_of_Urls.append(event['id']) slug = event['slug'] for List_of_Url in List_of_Urls: try: url2 = f'https://.............../{List_of_Url}/.........' response2 = requests.get(url2, headers=headers).json() if response2['graphPoints']: print(slug) except: pass
Ответ JSON пример 1:
{ "graphPoints": [ { "minute": 1, "value": -2 }
Ответ JSON пример 2:
{ "error": { "code": 404, "message": "Not Found" } }
Моя идея заключается в том , что если есть graphPoints
in JSON
, то печать slug
значения, но в прямом if response2['graphPoints']:
значении для true or false
не работает, как я должен заставить его работать?
Комментарии:
1. Почему бы вам просто не проверить код ответа и не проигнорировать не 200?
2. помимо ответа @chasmani, есть также возможность использовать короткое замыкание и просто
print(response2.get('graphPoints') and slug)
Ответ №1:
Если это объект JSON, я думаю, вы можете просто сделать:
if 'graphPoints' in response2: print(slug)
Комментарии:
1. Привет , друг @chasmani, спасибо за поддержку. Я добавил две ссылки внутри вопроса, чтобы продемонстрировать ответы, которые дает JSON. Я попробовал два способа, которые вы указали, но у меня ничего не вышло!
2. второй — это антипаттерн.
key in some_dict
является ли предполагаемый способ проверки членства в dict3. @BrondbyIF, пожалуйста, опубликуйте дополнительную информацию о том, как это не работает. Первый фрагмент на самом деле тот, который вы ищете
4. Привет @Марат На самом деле я не знаю, почему это не работает, код запускается и не печатает никаких значений , но когда я использую
if (response2['graphPoints'][0]['minute'] gt;= 1):
, он возвращает отпечатки, поэтому я решаю проблему, но я хотел что-то точное поверх существования точек графика5. @Brondbyесли ответ содержит опечатку,
graphpoints
вместоgraphPoints