Umwandlung von Curl in Python Requests

Ich versuche, die folgende Arbeitsanforderung in Curl in eine Python-Anforderung umzuwandeln (mithilfe der Requests)http://docs.python-requests.org/en/v0.10.7/).

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

(Bitte beachten Sie, dass ich eine gefälschte URL verwendet habe, der Befehl jedoch mit der echten URL funktioniert.)

Das empfangende Ende (lief in Flask) macht dies:

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

In curl (7.30), ausgeführt unter Mac OS X (10.9), gibt der obige Befehl eine JSON-Liste zurück, die mit der Tag-Abfrage gefiltert wurde.

Mein Python-Skript sieht folgendermaßen aus: Es gibt eine ungültige 400-Anforderung zurück.

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

Ich habe das Gefühl, dass ich etwas Kleines vermisse und jede Hilfe wäre dankbar.

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage