python-requests gibt 'Keine' Antwort, wo die json-Daten erwartet
Erstens, ich sollte hinzufügen, dass Sie finden diese Anfrage wie folgt:
1- Go to [airline site][1]
2- Type in "From" = "syd"
3- Type in "To" = "sin"
4- Make the departure date sep.3 and click one-way and search
5- On the search result page check your network get request when you click on an available seat option radio button
Ich versuche, die Anforderungen Modul, um die Reaktion zum Beispiel von diese Website
Und dies ist, was ich versuche:
url = "http://www.singaporeair.com/chooseFlightJson.form?"
payload = {'selectedFlightIdDetails[0]':amount_data,'hid_flightIDs':'','hid_recommIDs':'','tripType':"O",'userPreferedCurrency':""}
response = requests.get(url, params=payload)
print response.json()
Wird die Antwort sein soll:
{"price":{"total":"595.34","currency":{"code":"AUD","label":""},"adult":{"count":1,"label":"Adult","cost":"328.00","total":"328.00"},"child":{"count":0,"label":"Child","cost":"0.00","total":"0.00"},"infant":{"count":0,"label":"Infant","cost":"0.00","total":"0.00"},"addOns":[{"label":"Airport /Government taxes ","cost":"83.24"},{"label":"Carrier Surcharges","cost":"184.10"}],"disclaimer":"Prices are shown in Canadian Dollar(CAD)","rate":"595.34 AUD \u003d 913.80 CAD","ratehint":"Estimated","unFormattedTotal":"595.34"},"messages":{"O3FF11SYD":"A few seats left","O1FF31SYD":" ","R0FF31SYD":"A few seats left","O2FF31SYD":"A few seats left","O0FF31SYD":" ","O1FF11SYD":"A few seats left","O0FF21SYD":" ","O2FF21SYD":" ","O3FF21SYD":" ","O1FF21SYD":" "},"cabinClass":{"onwardCabin":["Economy"]}}
- Die Antwort ist der Wert
None
, codiert im JSON; der server gibtnull\r\n
. - Wenn Sie erwarten, dass der string
null
, vielleicht suchen Sie jaresponse.content
. Wenn Sie erwarten, dass ein leeres dict json, null == Keiner != {} - Aktualisiert die Frage, Hinzugefügt das erwartete Ergebnis, und die Verfahren, die Sie Folgen müssen, um es zu sehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist der Wert
None
, codiert im JSON; der server gibtnull\r\n
, die das gleiche wieNone
in Python.Dem content-type ist hier falsch; es ist, legen Sie text/html, aber das
response.json()
Rückgabewert ist völlig korrekt, was der server gesendet:Die Lösung ist die Verwendung von Anfragen Sitzung, etwa so:
Dann rufen alle urls, die Sie brauchen, um einfach tun:
Dieser setzt cookies und session-Variablen, die notwendig sind, um die Daten abzurufen.
Ich habe gesehen jsessionid auf verschiedene Weise verwendet, in der url, oder in diesem Fall in einem cookie. Aber es sind wohl auch andere session-info, die erforderlich sind, die durch Anfragen session-Objekt.