Conversión de Curl a Python Solicitudes

Estoy tratando de convertir la siguiente solicitud de trabajo en curl a una solicitud de python (usando las solicitudeshttp://docs.python-requests.org/en/v0.10.7/).

curl --data 'query={"tags":["test1","test2"]}' http://www.test.com/match

(tenga en cuenta que he usado una URL falsa pero el comando funciona con la URL real)

El extremo receptor (corrido en matraz) hace esto:

@app.route("/match", methods=['POST'])
def tagmatch():
    query = json.loads(request.form['query'])
    tags = query.get('tags')
    ... does stuff ...
    return json.dump(stuff)

En curl (7.30), ejecutado en Mac OS X (10.9), el comando anterior devuelve correctamente una lista json que se filtró usando la consulta de etiquetas.

Mi script en Python es el siguiente, devuelve una solicitud incorrecta de 400.

import requests

payload = {"tags":["test1", "test2"]}
# also tried  payload = 'query={"tags":["test1","test2"]}'
url = 'http://www.test.com/match'

r = requests.post(url, data=payload)

if __name__=='__main__':

     print r.text

Siento que me estoy perdiendo algo pequeño y cualquier ayuda sería apreciada.

Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta