【问题标题】:Getting KeyError after running json.loads运行 json.loads 后出现 KeyError
【发布时间】:2019-01-27 09:07:05
【问题描述】:

我想在循环中将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)

错误:

【问题讨论】:

  • 字典中似乎不存在avatar 键。您可以使用hlx_json.get('avatar') 来避免此异常(它将返回None 类型作为默认值,您可以将另一个默认值作为第二个参数传递给get

标签: python json keyerror


【解决方案1】:

字典中似乎不存在avatar 键。您可以使用hlx_json.get('avatar') 来避免此异常(它将返回 None 类型作为默认值,您可以将另一个默认值作为第二个参数传递给 get)

另一种可能性是您使用的 API 限制了特定时间段内的调用次数,第 100 次调用被拒绝。你可以从 ID 100 开始测试,或者在 JSON 反序列化之前打印响应

【讨论】:

  • TypeError: 'dict' 对象不可调用
  • @Demikozo4 你能在这里分享你更改的代码段吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
相关资源
最近更新 更多