Отправка POST-запроса с кратными значениями для того же ключа с библиотекой запросов - PullRequest
4 голосов
/ 06 декабря 2011

Как бы вы отправили запрос с несколькими значениями с одним и тем же ключом?

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

Edit:

Хм, очень странно. Я попытался повторить данные поста, используя простое приложение Flask, и получаю:

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

Это просто недостаток httpbin.org?

Ответы [ 2 ]

4 голосов
/ 08 декабря 2011

Оказывается, requests отправлял данные POST без проблем.Это была ошибка на конце http://httpbin.org, из-за которой данные формы были сглажены, а несколько значений с одним и тем же ключом игнорировались.

3 голосов
/ 08 декабря 2011

Попробуйте 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"
  ]
},
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...