我想将循环中的ID值从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)
错误:
答案 0 :(得分:0)
似乎avatar
键在字典中不存在。您可以使用hlx_json.get('avatar')
来避免此异常(它将返回None类型作为默认值,并且您可以将另一个默认值作为第二个参数传递给get)
另一种可能性是您使用的API限制了特定时间段内的调用次数,而第100个调用被拒绝。您可以通过从ID 100开始或在JSON反序列化之前打印响应来进行测试