Получение 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.