1

この質問を確認してくださいPythonoauth2-リクエストを作成していますWebアプリケーションでvimeo統合を使用しています。

最初にoauth_signatureを取得しましたが、問題はありませんでした(エラーはありません)。最初からそれらをもう一度試しましたが、 ValueErrorが発生しました。このリクエストを行うときに解凍するには複数の値が必要です。

>>> r = request.get(url, headers=headers)

ここで私のコードをチェックできますhttps://gist.github.com/2949182

エラーは

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/requests-0.10.1-py2.7.egg/requests/api.py", line 51, in get
return request('get', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-0.10.1-py2.7.egg/requests/api.py", line 39, in request
return s.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests-0.10.1-py2.7.egg/requests/sessions.py", line 159, in request
headers[k] = header_expand(v)
File "/usr/local/lib/python2.7/dist-packages/requests-0.10.1-py2.7.egg/requests/utils.py", line 152, in header_expand
for i, (value, params) in enumerate(headers):
ValueError: need more than 1 value to unpack

ありがとう!

アップデート

>>> headers
{'Authorization': u'oauth_body_hash=XXXXXXXXXXXXXXXXXXXXXXXXXX,oauth_nonce=3454768,oauth_timestamp=1340035585,oauth_consumer_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,oauth_signature_method=HMAC-SHA1,oauth_version=1.0,oauth_signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX,oauth_callback=http://127.0.0.1:8000/information/vimeo'}
4

1 に答える 1

7

ディクショナリをアンパックできるようにするには、.items() を使用する必要があるため、コードは次のようになります。

for i, (value, params) in enumerate(headers.items()):

これはあなたのコードではなく、変更できないため、次のようにヘッダーを渡すと、ヘッダーは辞書ではなくタプル (またはリスト) である必要があるというエラーが表示されます。

headers = [("Authorization", "Values")]

それはうまくいくはずです。

編集:これは機能しません。辞書バージョン {"Authorization": "Values"} が機能するようになりました。リクエストを更新すると役立つかもしれません。

于 2012-06-18T17:01:14.120 に答える