5

同じキーで複数の値を持つリクエストを送信するにはどうすればよいですか?

r = requests.post('http://www.httpbin.org/post', data={1: [2, 3]})
print r.content
{{
  ..。
  "形": {
    「1」:「3」
  }、
  ..。
}

編集:

うーん、非常に奇妙です。単純なFlaskアプリケーションを使用して投稿データをエコーし​​ようとしましたが、次のようになりました。

[('1', u'2'), ('1', u'3')]

これはhttpbin.orgの単なる欠点ですか?

4

2 に答える 2

4

Werkzeugを試してみてくださいMultiDict。これは、Flaskアプリケーションでこの目的に使用されるのと同じ構造です。

import requests
from werkzeug.datastructures import MultiDict

data = MultiDict([('1', '2'), ('1', '3')])
r = requests.post('http://www.httpbin.org/post', data=data)
print(r.content)

結果:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...
于 2011-12-08T18:06:15.470 に答える
4

requests問題なく POST データを送信していたことがわかりました。これは、フォーム データがフラット化され、同じキーを持つ複数の値が無視される原因となっていたhttp://httpbin.org側の問題でした。

于 2011-12-08T18:18:54.060 に答える