Неправильное форматирование данных JSON в Python Запрашивает оператор JSON API POST

1

Я пытаюсь отправить на сервер набор данных 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)

Любая идея, что мне здесь не хватает?

Теги:
python-requests

1 ответ

1

Значение, переданное ключевому слову json requests.post() json должно быть несериализованным значением Python (например, dict), а не последовательной строкой JSON. Либо payload1 одиночные кавычки вокруг payload1 чтобы превратить ее в dict либо используйте data=payload1 вместо json=payload1.

  • 0
    Очень ценится. У меня все еще есть проблемы с API, но вы открыли мне глаза на то, что я не до конца понял, что неизбежно поможет мне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню