Я пытаюсь отправить на сервер набор данных json. Я, кажется, что-то не хватает, потому что получаю ошибки, которые включают следующее: (Примечание: CPAPI - это имя API)
"SerializationException - не может десериализовать запрос" application/json "с использованием CPAPI.ServiceModule.AddCustomerRequest"\nError: System.Runtime.Serialization.SerializationException: определения типов должны начинаться с символа '{', ожидающего сериализованного типа>> 'AddCustomerRequest' начиная с:\"{\\" SY_WRKGRP\\": {\\" WRKGRP_ID\\": \\" 7\\"}, \\" AR_CUST\\":\r\n
Вот мой код:
import requests, json
url = "https://shipping:52000/customer/"
payload1 = '{"SY_WRKGRP":{"WRKGRP_ID":"7"},"AR_CUST": {"CUST_NO":"6377123456","NAM":"Rob O","NAM_UPR":"ROBO","FST_NAM":"Rob","FST_NAM_UPR":"ROB","LST_NAM":"O"}}'
headers = {
"Accept": "application/json",
"Authorization": "XXXX",
"APIKey": "YYYY",
"Content-Type": "application/json"
}
r = requests.post(url, json=payload1, headers=headers,verify=False)
print()
print(r)
print(r.text)
Любая идея, что мне здесь не хватает?
Значение, переданное ключевому слову json
requests.post()
json
должно быть несериализованным значением Python (например, dict
), а не последовательной строкой JSON. Либо payload1
одиночные кавычки вокруг payload1
чтобы превратить ее в dict
либо используйте data=payload1
вместо json=payload1
.