You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在REST API的JSON payload中填充购物车商品字典列表?

问题

对接REST API时,需要构造包含自定义值的JSON请求,要求payload的items字段包含所有cart_item的商品数据。现有初始代码:

payload = {
    "items": [],
}

尝试了以下循环但不知道如何将生成的item存入payload["items"]:

for cart_item in cart_items:
    item = [
        {
            "reference_id": f"{cart_item.sku}",
            "name": f"{cart_item.product.name}",
            "quantity": cart_item.quantity,
            "unit_amount": cart_item.product.price
        },
     ]

期望构造出如下格式的payload并发送POST请求:

payload = {
    "items": [ 
        {
            "reference_id": "SKU49FS20DD",
            "name": "Produto 1",
            "quantity": 1,
            "unit_amount": 130
        },
        {
            "reference_id": "SKU42920SSD",
            "name": "Produto 2",
            "quantity": 1,
            "unit_amount": 100
        }
    ],
}

response = requests.request(
    "POST",
    url,
    headers=headers,
    json=payload
)

同时不确定是否需要手动在JSON与字典间转换后再发送请求。

解决方案

1. 修正item定义并填充payload的items列表

你当前代码把item定义成了包裹单个字典的列表,这是冗余操作。只需直接生成单个字典,再用append()方法将其添加到payload["items"]列表中即可:

payload = {
    "items": [],
}

for cart_item in cart_items:
    # 直接生成单个商品字典
    item = {
        "reference_id": f"{cart_item.sku}",
        "name": f"{cart_item.product.name}",
        "quantity": cart_item.quantity,
        "unit_amount": cart_item.product.price
    }
    # 将商品字典添加到items列表
    payload["items"].append(item)

2. JSON与字典的转换说明

不需要手动转换。requests库的request()方法在指定json参数时,会自动将Python字典序列化为JSON字符串,同时设置正确的Content-Type请求头,直接传入payload字典即可。

完整代码示例

import requests

payload = {
    "items": [],
}

# 填充商品数据到payload
for cart_item in cart_items:
    item = {
        "reference_id": f"{cart_item.sku}",
        "name": f"{cart_item.product.name}",
        "quantity": cart_item.quantity,
        "unit_amount": cart_item.product.price
    }
    payload["items"].append(item)

# 发送POST请求
response = requests.request(
    "POST",
    url,
    headers=headers,
    json=payload
)

# 可选:查看响应状态与结果
print(response.status_code)
print(response.json())

内容的提问来源于stack exchange,提问作者Murilo Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:31:41