Получение KeyError после запуска json.loads

Я хочу изменить значение идентификатора в цикле от 0 до 100, а затем загрузить эти изображения, но в цикле сообщалось об ошибке, и значение словаря не было найдено.

#!/usr/bin/env python3
import requests
import json
import os
import urllib

if not os.path.exists('images'):
    os.mkdir('images')


def huluxia(id=250):
    _key = '**'
    hlx = requests.get(url='**',
                       params={'_key': _key,
                               'user_id': id})
    hlx.encoding = 'utf-8'
    hlx_json = json.loads(hlx.content)
    print(hlx_json['avatar'])
    urllib.request.urlretrieve(hlx_json['avatar'], './images/%s%s.jpg' %
                               (hlx_json['nick'], hlx_json['userID']))

for i in range(100):
    huluxia(id=i)

Ошибка:

1 ответ

Кажется, что avatar Ключ не существует в словаре. Ты можешь использовать hlx_json.get('avatar') чтобы избежать этого исключения (он будет возвращать тип None в качестве значения по умолчанию, и вы можете передать другое значение по умолчанию в качестве второго аргумента для получения)

Другая возможность заключается в том, что используемый вами API ограничивает количество вызовов за определенный период времени, и сотый вызов отклоняется. Вы можете проверить это, начиная с идентификатора 100 или распечатав ответ до десериализации JSON.

Другие вопросы по тегам