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

按sku与id匹配为产品字典添加价格字段问题求助

解决方案

问题根源

你用zip循环失败的核心原因是:zip是按列表索引位置一一配对,只有当products和prices中第N个元素的sku与id恰好匹配时才会成功更新。你的4000条数据里仅14条满足位置+值的双重匹配,所以只有14条生效。

正确实现方式

先把prices转换成以id为键的映射字典,通过实际值匹配而非位置匹配来关联数据,效率和准确性都会大幅提升。

代码示例

# 构建价格映射字典:用price的id作为键,对应price的value和currencyId信息
price_map = {price_item['id']: price_item['price'] for price_item in prices}

# 遍历所有产品offer,匹配更新
for offer in products:
    offer_sku = offer.get('sku')
    # 如果当前offer的sku在价格映射中存在,就更新字段
    if offer_sku in price_map:
        price_data = price_map[offer_sku]
        offer['value'] = price_data['value']
        offer['currencyId'] = price_data['currencyId']

补充说明

  • 这种方式的时间复杂度是O(M+N)(M是products长度,N是prices长度),比嵌套循环的O(M*N)高效得多,适合处理4000条量级的数据。
  • 如果存在sku找不到对应price的情况,代码会自动跳过,避免报错;如果需要处理这类缺失项,可以在if分支外添加逻辑(比如设置默认值)。

内容的提问来源于stack exchange,提问作者Iren E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:22:37