¿Por qué el rizo trunca esta cadena de consulta?

Estoy seguro de que la respuesta a esto será un problema de codificación de caracteres dolorosamente obvio ...

Estoy usando curl en la línea de comando para probar algunos puntos finales en una aplicación python. El punto final toma parámetros de url de latitud y longitud. Nada muy especial Puse el comando:

curl -v -L http://localhost:5000/pulse/?lat=41.225&lon=-73.1

Server responde, con salida de rizo detallado:

* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /pulse/?lat=41.225 HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: localhost:5000
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 500 INTERNAL SERVER ERROR
< Content-Type: application/json
< Content-Length: 444
< Server: Werkzeug/0.8.1 Python/2.7.2+
< Date: Wed, 01 Feb 2012 17:06:29 GMT
< 
{
    "msg": "TypeError: float() argument must be a string or a number", 
    "flag": 0, 
    "stack": [
        "Traceback (most recent call last):", 
        "  File \"engine.py\", line 139, in dispatch_request", 
        "    return getattr(self, 'action_'+endpoint)(request, **values)", 
        "  File \"engine.py\", line 818, in action_getpulse", 
        "    lon = float(request.args.get('lon'))"
    ], 
    "err": 1
* Closing connection #0
}
[1]+  Done

En la segunda línea de ese basurero, es obvio que el segundo parámetro,lon, no se envía. ¿Qué estoy haciendo mal? Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta