AttributeError("'str' 对象没有属性 'read'")

新手上路,请多包涵

在 Python 中,我收到一个错误:

 Exception:  (<type 'exceptions.AttributeError'>,
AttributeError("'str' object has no attribute 'read'",), <traceback object at 0x1543ab8>)

给定python代码:

 def getEntries (self, sub):
    url = 'http://www.reddit.com/'
    if (sub != ''):
        url += 'r/' + sub

    request = urllib2.Request (url +
        '.json', None, {'User-Agent' : 'Reddit desktop client by /user/RobinJ1995/'})
    response = urllib2.urlopen (request)
    jsonStr = response.read()

    return json.load(jsonStr)['data']['children']

这个错误是什么意思,我做了什么导致它?

原文由 RobinJ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

好的,这是一个旧线程但是。我遇到了同样的问题,我的问题是我使用了 json.load 而不是 json.loads

这样json加载任何一种字典都没有问题。

官方文档

json.load - 使用此转换表将 fp(支持 .read() 的文本文件或包含 JSON 文档的二进制文件)反序列化为 Python 对象。

json.loads - 使用此转换表将 s(包含 JSON 文档的 str、bytes 或 bytearray 实例)反序列化为 Python 对象。

原文由 JohnyMSF 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题