Python中的JSON数据格式错误,请求JSON API POST语句

时间:2018-07-14 20:55:22

标签: python json api python-requests

我正在尝试将一组json数据发布到服务器。我似乎丢失了一些东西,因为我遇到了以下错误:(注意:CPAPI是API的名称)

  

“ SerializationException-无法反序列化” application / json“   使用CPAPI.ServiceModule.AddCustomerRequest请求” \ n错误:   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)

知道我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:1)

传递给requests.post()的{​​{1}}关键字的值应该是未序列化的Python值(例如json),而不是序列化的JSON字符串。要么在dict周围加上单引号将其变为payload1,要么使用dict而不是data=payload1