d1mpi
@d1mpi
Кто куда, а я в Python

Как проверить наличие элемента в json?

Сайт отдает вот такой ответ:
{'result': True, 'balance': 3, 'discount': 0, 'discountDueTime': 0, 'promoFlow': False, 'data': {'riskscore': 0.249, 'signals': {'atm': 0.003, 'dark_market': 0, 'dark_service': 0, 'exchange_fraudulent': 0.002, 'exchange_mlrisk_high': 0.979, 'exchange_mlrisk_low': 0.005, 'exchange_mlrisk_moderate': 0.002, 'exchange_mlrisk_veryhigh': 0, 'gambling': 0, 'illegal_service': 0, 'marketplace': 0, 'miner': 0.007, 'mixer': 0, 'p2p_exchange_mlrisk_high': 0.001, 'p2p_exchange_mlrisk_low': 0, 'payment': 0, 'ransom': 0, 'scam': 0, 'stolen_coins': 0, 'wallet': 0}, 'updated_at': 1641820488, 'address': '0xa4fdbeb3870ec3b342b5847ff002b06d1e8baa74', 'fiat_code_effective': 'usd', 'counterparty': {'address': '0xa4fdbeb3870ec3b342b5847ff002b06d1e8baa74'}, 'reportedAddressBalance': None, 'blackListsConnections': False, 'pdfReport': 'https://extrnlapiendpoint.silencatech.com/response/userdata/86DC50DF724411D/renderer/pdf/responsedata/47126220220110151448:1AA82A5035981B4', 'asset': 'ETH', 'timestamp': '2022-01-10 15:14:48'}}


Если результата в ответе нет, то signals отсутствует или пустой, я пытаюсь это проверять таким способом:
if not result['data']['signals']:

Но получаю ошибку об отсутствии signals, как тогда сделать правильно?
  • Вопрос задан
  • 293 просмотра
Решения вопроса 3
aRegius
@aRegius
Python Enthusiast
if not result['data'].get('signals'):

только обратите внимание на то, что в этот фильтр попадет и значение ключа равное 0 (не знаю, насколько это актуальная ситуация в вашем случае)
Ответ написан
Комментировать
@Kadabrov
Python вложенный словарь
response = {'result': True,
     'balance': 3,
     'discount': 0,
     'discountDueTime': 0,
     'promoFlow': False,
     'data': {'riskscore': 0.249,
              'signals': {'atm': 0.003,
                          'dark_market': 0, 'dark_service': 0, 'exchange_fraudulent': 0.002, 'exchange_mlrisk_high': 0.979, 'exchange_mlrisk_low': 0.005, 'exchange_mlrisk_moderate': 0.002, 'exchange_mlrisk_veryhigh': 0, 'gambling': 0, 'illegal_service': 0, 'marketplace': 0, 'miner': 0.007, 'mixer': 0, 'p2p_exchange_mlrisk_high': 0.001, 'p2p_exchange_mlrisk_low': 0, 'payment': 0, 'ransom': 0, 'scam': 0, 'stolen_coins': 0, 'wallet': 0}, 'updated_at': 1641820488, 'address': '0xa4fdbeb3870ec3b342b5847ff002b06d1e8baa74', 'fiat_code_effective': 'usd', 'counterparty': {'address': '0xa4fdbeb3870ec3b342b5847ff002b06d1e8baa74'}, 'reportedAddressBalance': None, 'blackListsConnections': False, 'pdfReport': 'https://extrnlapiendpoint.silencatech.com/response/userdata/86DC50DF724411D/renderer/pdf/responsedata/47126220220110151448:1AA82A5035981B4', 'asset': 'ETH', 'timestamp': '2022-01-10 15:14:48'}}

print(response['data']['signals'])
Ответ написан
Комментировать
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Может кривой json? У меня сработало(правда, я json прогнал через фиксер):
61dc34873ee78316352402.png
А как получаете json? Если requests, тогда попробуйте так:
if not result.json()['data']['signals']
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы