【问题标题】:AttributeError: 'module' object has no attribute 'get'AttributeError:“模块”对象没有属性“获取”
【发布时间】:2014-08-03 00:38:39
【问题描述】:

我有以下代码来加载 JSON:

import json
import requests
r = requests.get('http://api.reddit.com/controversial?limit=5')
if r.status_code = 200:
    reddit_data = json.loads(r.content)
    print reddit_data['data']['children'][1]['data']
else:
    print "Errror."

我收到了这条消息。

arsh@arsh:~$ python q.py
Traceback (most recent call last):
  File "q.py", line 1, in <module>
    import json
  File "/home/arsh/json.py", line 5, in <module>
    reddit_data = json.loads(r.content)
AttributeError: 'module' object has no attribute 'loads'

【问题讨论】:

  • get 错误还是loads 错误?
  • @MartijnPieters,问题中有两个不同的错误。 get 意味着请求
  • @PadraicCunningham:啊,是的,问题标题甚至与发布的回溯不匹配。啧啧啧。

标签: python json


【解决方案1】:

您的主目录中有一个名为json.py不同文件:

File "/home/arsh/json.py", line 5, in <module>

这个文件碍事,你没有导入标准库版本。将其重命名为其他名称或将其删除。您还必须删除 json.pyc 文件。

请注意,requests 响应对象已经可以为您处理 JSON 响应

import requests

r = requests.get('http://api.reddit.com/controversial?limit=5')
r.raise_for_status()
reddit_data = r.json()
print reddit_data['data']['children'][1]['data']

Response.json() method 为您处理 JSON 解码,包括检测解码时使用的正确字符集。

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2018-08-28
    相关资源
    最近更新 更多