yaml 格式作为请求帖子正文
Posted
技术标签:
【中文标题】yaml 格式作为请求帖子正文【英文标题】:yaml format as request post body 【发布时间】:2019-06-01 22:53:18 【问题描述】:我想将 post 请求正文从 json 转换为 yaml 原始json格式是这样的:
"traceId": "1000000316028",
"orderDto":
"totalPrice": "0.01",
"baseList": [],
"hongbaoSn": "",
"couponSn": "",
"shelfCode": "2SvNXIz56rL0EU5PpSpzwA..",
"additionalPurchaseList": [],
"bindingList": [
"baseSku":
"count": 1,
"skuId": 1001088
,
"additionalSku": []
]
然后我将其转换为 yaml 格式,如下所示:
traceId: 1000000316028
orderDto:
totalPrice: 0.01
baseList: []
hongbaoSn:
couponSn:
shelfCode: 2SvNXIz56rL0EU5PpSpzwA..
additionalPurchaseList: []
bindingList:
- baseSku: count: 1, skuId: 1001088
addtionalSku: []
并将其作为 post body 放入 python 请求中,如下所示:
response = requests.request("POST", url, data=json.dumps(data), headers=headers)
但是错了,响应码是-1。 我从邮递员那里复制的,正确的正文格式是这样的:
数据 = "\n\t\"traceId\": \"1000000316028\",\n\t\"orderDto\": \n\t\t\"totalPrice\": \"0.01\ ",\n\t\t\"baseList\": [],\n\t\t\"hongbaoSn\": \"\",\n\t\t\"couponSn\": \"\" ,\n\t\t\"shelfCode\": \"2SvNXIz56rL0EU5PpSpzwA..\",\n\t\t\"additionalPurchaseList\": [],\n\t\t\"bindingList\": [ \n\t\t\t\"baseSku\": \n\t\t\t\t\"count\": 1,\n\t\t\t\t\"skuId\": 1001088 \n\t\t\t,\n\t\t\t\"附加Sku\": []\n\t\t]\n\t\n"
这可以响应代码 200。
但是如果我想使用 yaml 格式,哪里错了?
非常感谢!
【问题讨论】:
data=json.dumps(data)
- 此代码用于 JSON,而不是 YAML。
你尝试了什么?
我试过 json.dumps(data) ,yaml.dump(data,Dumper=yaml.RoundTripDumper) 并从 yaml 读取数据。都错了。但是如果从json读取数据,我使用json.dump(data),它可以响应200。我在线将json转换为yaml,所以我不知道哪里错了
【参考方案1】:
解决了。 我修改了我的yaml格式如下:
traceId: '1000000316028'
orderDto:
totalPrice: '0.01'
baseList: []
hongbaoSn: ''
couponSn: ''
shelfCode: 2SvNXIz56rL0EU5PpSpzwA..
additionalPurchaseList: []
bindingList:
- baseSku:
count: 1
skuId: 1001088
additionalSku: []
【讨论】:
以上是关于yaml 格式作为请求帖子正文的主要内容,如果未能解决你的问题,请参考以下文章