Здравствуйте, подскажите про json

Короче в json ответе от сервера может стоять значение ключа json а может и не стоять. В итоге python первые значения показывает, а потом когда ключа нету, выдает ошибку и прекращает работу. А мне надо чтобы просто пропускалось если нету значения.

data = response.json()
# Узнаем кол-во друзей
count = data['response']['count']
print(f"Количество друзей: \n{count} \n")

print("Дата пользователя ")
for item in data['response']['items']:
            print(item['bdate'])

Ответы (3 шт):

Автор решения: R1senDev

Из вопроса не совсем понятно, какие именно объекты являются опциональными. Вот надёжное решение:

data = response.json()
# Узнаем кол-во друзей
try:
    count = data['response']['count']
    print(f"Количество друзей: \n{count} \n")
except KeyError:
    pass

try:
    for item in data['response']['items']:
        print(f"Дата пользователя\n{item['bdate']}")
except KeyError:
    pass

Готов ответить на вопросы :)

→ Ссылка
Автор решения: Сергей Кох

Так как data = response.json() возвращает словарь

print(type(data))

<class 'dict'>

Вы можете, при получении значений, использовать метод get(), который при отсутствии ключа возвращает значение по умолчанию.

→ Ссылка
Автор решения: CrazyElf

Можно прямо проверять наличие ключа через in:

for item in data['response']['items']:
    if 'bdate' in item:
        print(item['bdate'])
→ Ссылка