/ / Python požiadavky post zlyhá pri použití json.dump - python, json

Požiadavky Pythonu po zlyhaní pri použití json.dump - python, json

Použitím requests poslať JSON do webovej služby. Vypisovanie tohto JSONu takto:

response = requests.post("https://ws.foo.net/search",
json=({
"filters": [
{
"filters": [
{
"field": "type",
"type": "EQ",
"value": "THING"
}
]
},
{
"filters": [
{
"field": "responseCode",
"type": "EQ",
"value": "301"
},
{
"field": "responseCode",
"type": "EQ",
"value": "302"
}
]
},
{
"filters": [
{
"field": "State",
"type": "EQ",
"value": "CONFIRMED"
}
]
}
]
}), auth=("name", "password"))

Chcem použiť premenné v JSON, takže konštruovať, že zo slovníka pomocou json.dumps.

Nižšie sa zobrazí chyba 400:

Nepodarilo sa prečítať JSON: Nie je možné vytvoriť inštanciu hodnoty typu [jednoduchý typ, classcom.linkco.ws.v1.model.V1SearchQuery] z JSON String; žiadny konštruktor / továrenská metóda

import json
import requests


jsonObject = {"filters": [{"filters": [{"field": "type","type": "EQ","value": "WEB_SITE"}]},{"filters": [{"field": "name","type": "EQ","value": "something"}]},{"filters": [{"field": "State","type": "EQ","value": "CONFIRMED"}]}]}

response = requests.post("https://ws.foo.net/search", json=json.dumps(jsonObject), auth=("name", "password"))


print json.dumps(jsonObject)
print "----"
print response.text

Tlačím json.dumps(jsonObject) skontrolovať a produkuje platné JSON a funguje, ak skopíruje do klienta REST I "m pomocou - to" je dobré (dobre - to pravdepodobne nie je z dôvodu, že som sa nepodarilo nájsť).

odpovede:

1 pre odpoveď č. 1

Malá chyba spôsobuje problémy

response = requests.post("https://ws.foo.net/search",
json=jsonObject # was json.dumps(jsonObject),
auth=("name", "password"))

To by malo fungovať dobre

Pozrite si, že balík požiadaviek prevedie python dict na Json (nie vy);