2017-06-12 4 views
0

Ich versuche, die folgende cURL Befehl POST meine URL-codiert Liste in eine Form zu imitieren:Python erforderlich Liste Parameter nicht vorhanden ist

curl "https://website.com/update/" --data "simChangesList=%5B%7B%22simId%22%3A760590802%2C%22changeType%22%3A2%2C%22targetValue%22%3A%220003077%22%2C%22effectiveDate%22%3Anull%7D%5D" --compressed

Die Daten Ich muss URL-Codierung das ist simChangesList. Im Wesentlichen werden diese Daten als simChangesList: [{"simId":760590802,"changeType":2,"targetValue":000307,"effectiveDate":null}]

decodiert. Mit dem folgenden Skript stoße ich auf einen Required List parameter 'simChangesList' is not present Fehler.

Hier ist mein Skript:

headers = {'Content-Type': 'application/x-www-form-urlencoded'} 
enc = urllib.quote('simChangesList: [{"simId":760590802,"changeType":2,"targetValue":000307,"effectiveDate":null}]') 
auth = session.post(uri, data=enc, headers=headers) 
print auth.text 

jedoch das obige Skript ausführen gibt den oben fehlenden Liste Parameterfehler.

Wie kann ich pass in der fehlenden Parameterliste, wenn meine codierte Liste sieht wie folgt aus:

simChangesList%3A%20%5B%7B%22simId%22%3A760590802%2C%22changeType%22%3A2%2C%22targetValue%22%3A000307%2C%22effectiveDate%22%3Anull%7D%5D 

Hinweis es fehlt die ‚=‘ Operator, warum kann ich nicht mein Skript ausführen und es eng machen ähneln meine cURL Befehl zum Veröffentlichen meiner URL-codierten Informationen?

+0

Sie zitieren eine Zeichenfolge, die mit "simChangesList:" beginnt, also das, was Sie bekommen. No = wird angezeigt. Wie Sie es sehen, verwenden Sie das Anfragepaket. Übergeben Sie ein Diktat als Daten mit "simChangesList" als Schlüssel und der ** nicht angegebenen **, aber serialisierten Liste als Wert. Sie sollten den Header auch nicht explizit übergeben müssen. –

+0

@ IljaEverilä Gefällt das? 'data = {simChangesList: 'simId': 760590802, 'changeType': 2, 'targetValue': '0003077', 'effectiveDate': 'null'}' Ich kann immer noch nicht richtig erscheinen, wie soll ich formatieren meine Liste, die ich senden muss? – juiceb0xk

Antwort

-1

Ich habe auch eine ähnliche Situation Vermieter, aber ich habe gerade aufgefordert, einen der Parameter in JSON gibt es nicht, sucht nach einer Lösung.

Auf dem Vermieter Parameter zu übergeben, ist es empfehlenswert, ein json.dumps (data)

es hinzuzufügen versuchen.

Verwandte Themen