Использование requests
для публикации JSON для веб-службы. Typing вне JSON, как это работает:Сообщение об ошибке Python не работает при использовании json.dump
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'))
Я хочу использовать переменные в JSON, так что строить из словаря с использованием json.dumps
.
Ниже производит 400 ошибку:
Could not read JSON: Can not instantiate value of type [simple type, classcom.linkco.ws.v1.model.V1SearchQuery] from JSON String; no single-String constructor/factory method
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
Я печать json.dumps(jsonObject)
проверить и производит действительный JSON и работает, если скопировать на клиент REST я использую - это хорошо (хорошо - это, вероятно, не по той причине, которую я не смог найти).
Это сделал Это. Очень благодарен. Спасибо. –