Estoy implementando una biblioteca de cliente para una HTTP-API privada usando python requests. La API (que no controlo) espera que los parámetros estén en cierto orden, pero python-requests no respeta un dict ordenado como parámetro.python-requests: order get parameters
Esto es lo que he intentado:
import requests
from django.utils.datastructures import SortedDict
params = SortedDict()
params['s'] = 'value1'
params['f'] = 'value2'
requests.get('https://example.org/private_api', params=params)
#performs request as https://example.org/private_api?f=value1&s=value2
Esto es lo que estoy tratando de evitar:
requests.get('https://example.org?{0}'.format(urlencode(params)))
¿Por qué usa 'data' param en lugar de' params' cuando realiza la solicitud? –
@Piotr Dobrogost: Eso fue un error cuando compilé el ejemplo. – tback
¿Por qué es esto un problema? Los parámetros GET generalmente se acceden por nombre, no por orden. –