Conversão de pedidos de curl para python

Eu estou tentando converter a seguinte solicitação de trabalho em curl para uma solicitação de python (usando as solicitaçõeshttp://docs.python-requests.org/en/v0.10.7/).

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

(por favor note, eu usei um URL falso, mas o comando funciona com o URL real)

O final de recebimento (executado no Flask) faz isso:

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

No curl (7.30), executado no Mac OS X (10.9), o comando acima retorna corretamente uma lista de json que filtrou usando a consulta de tag.

Meu script python é o seguinte, ele retorna um pedido incorreto 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

Sinto que estou sentindo falta de algo pequeno e qualquer ajuda seria apreciada.

Obrigado

questionAnswers(6)

yourAnswerToTheQuestion