Enviando solicitação POST com valores múltiplos para a mesma chave com a biblioteca de solicitações
-
28-10-2019 - |
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?
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