Python 3: получить значение сложного JSON массива с проверкой наличия ключа
Подскажите пожалуйста, получаю такой ответ в JSON по запросу. Мне нужно проверить наличие "key":"partner18", если оно есть то получить значение "Москва".
Пишу в Python3. За любую подсказку буду благодарен :=)
"products": [
{
"id": "20623",
"code1c": "",
"name": "BaByliss C453E розовый черный",
"count": "1.000",
"price": "34780.0000",
"productcurrency": "KZT",
"pricebasecart": "23870.0000",
"storageId": "5",
"storageExternalId": "PP1",
"productsource": "product",
"customfields": [
{
"key": "brendtovaradoppole9",
"name": "бренд товара доп. поле",
"value": "BaByliss"
},
{
"key": "partner18",
"name": "Партнёр",
"value": "Москва"
},
]
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Функция для поиска не очень уж и сложная. Вернёт None если ничего не нашла.
json_dict = {
"products": [
{
"id": "20623",
...
}
]
}
search = lambda d, what: next((x["value"] for p in d["products"] for x in p["customfields"] if x["key"] == what), None)
print(search(json_dict, "partner18"), search(json_dict, "foobar"), sep="\n")
Москва
None