python - 为什么 Python Requests 在尝试将它与 Tumblr 一起使用时会抛出此错误?

标签 python oauth tumblr python-requests

这是我的 Oauth 代码:

auth = OAuth1(client_key=consumer_key,
              client_secret=consumer_secret,
              resource_owner_key=access_key,
              resource_owner_secret=access_secret,
              signature_type='auth_header')

r = requests.get(url, auth=auth)
print r

错误:

   r = requests.get(url,auth = auth)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 49, in get
    return request('get', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 38, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 259, in request
    prep = req.prepare()
  File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 197, in prepare
    p.prepare_auth(self.auth)
  File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 329, in prepare_auth
    r = auth(self)
  File "/usr/local/lib/python2.7/dist-packages/requests_oauthlib/core.py", line 41, in __call__
    decoded_body = extract_params(r.data)
AttributeError: 'PreparedRequest' object has no attribute 'data'

最佳答案

我猜您使用的是 Requests 1.0.0 或更高版本。这是一个向后不兼容的版本,发生此错误是因为 requests-oauthlib尚不兼容。已经做了一些工作来解决这个问题,但还没有新的版本。参见 issue #1请求-oauthlib。

现在您的选择是:

  1. 降级到 requests 0.14.2,它应该与 request_oauthlib 0.2.0 一起使用。
  2. 升级到 the git version request_oauthlib,它可能足以满足您的需求。

关于python - 为什么 Python Requests 在尝试将它与 Tumblr 一起使用时会抛出此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001188/

相关文章:

python - Django - 创建两种用户类型,其中一种类型可以是两种类型

Python:优雅地将字典与值的 sum() 合并

seo - <meta title> 用于 Tumblr 上的标记页面

html - tumblr 主题,照片集适合整个屏幕

python - 使用 Python 更新 Facebook 状态

python - 如何为 gedit 编写 python 命令?

java - 永无止境的故事: Twitter Authentication

java - 使用 Feign 启用 OAuth2 以执行计划的跨服务任务

python - Oauth 配置文件格式 youtube 到 reddit 视频机器人

javascript - Tumblr.js API——require() 失败