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 格式作为请求帖子正文的主要内容,如果未能解决你的问题,请参考以下文章

如何正确格式化发布请求的正文?

帖子请求正文为空

打字稿:将帖子请求正文转换为地图

NSMutableURLRequest 发送部分帖子正文

将对象添加到从角度到 nodejs 的请求正文

在 Django 中获取请求正文作为字符串