Enviando solicitação POST com valores múltiplos para a mesma chave com a biblioteca de solicitações

StackOverflow https://stackoverflow.com/questions/8394267

Pergunta

Como você enviaria uma solicitação com valores múltiplos com a mesma chave?

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

Hmm, muito estranho.Tentei repetir os dados da postagem usando um aplicativo Flask simples e estou obtendo:

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

Isso é apenas uma deficiência de httpbin.org?

Foi útil?

Solução

Acontece que requests estava enviando os dados POST sem problemas.Era um problema no final http://httpbin.org que estava causando o achatamento dos dados do formulário e vários valores coma mesma chave a ser ignorada.

Outras dicas

Experimente o MultiDict Werkzeug.É a mesma estrutura usada para esse propósito em aplicativos 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)

Resultado:

...
"form": {
  "1": [
    "2",
    "3"
  ]
},
...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top