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

Python实现:基于MPN匹配CSV并填充Price与Stocks至目标文件

实现CSV字典匹配与字段填充的方法

核心思路

  • 以bottom_dic中的MPN为键,构建快速查找的映射字典,避免每次遍历全量数据,提升匹配效率
  • 遍历top_dic中的每条数据,通过MPN匹配映射字典,获取对应的Price和Stocks值
  • 将匹配到的字段值填充回top_dic后,写入原顶部CSV文件

具体代码实现

假设你的字典结构是列表套字典(每条数据对应CSV的一行,字段为字典键),示例结构如下:

top_dic = [
    {"MPN": "ABC123", "产品名称": "XX手机"},
    {"MPN": "DEF456", "产品名称": "XX耳机"}
]
bottom_dic = [
    {"MPN": "ABC123", "Price": "1999", "Stocks": "120"},
    {"MPN": "GHI789", "Price": "299", "Stocks": "80"}
]

步骤1:构建MPN到Price/Stocks的映射

# 用字典推导式生成映射,key为MPN,value为包含目标字段的字典
mpn_map = {item["MPN"]: {"Price": item["Price"], "Stocks": item["Stocks"]} for item in bottom_dic}

步骤2:遍历top_dic填充字段

for item in top_dic:
    mpn = item["MPN"]
    # 匹配成功则填充字段,失败则设默认值(可根据需求调整)
    if mpn in mpn_map:
        item["Price"] = mpn_map[mpn]["Price"]
        item["Stocks"] = mpn_map[mpn]["Stocks"]
    else:
        item["Price"] = ""
        item["Stocks"] = ""

步骤3:将更新后的数据写入原CSV文件

使用csv.DictWriter保持原字段顺序:

import csv

# 获取所有字段名(包含新增的Price和Stocks)
fieldnames = top_dic[0].keys()

with open("原顶部CSV文件路径.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(top_dic)

注意事项

  • 如果你的字典结构不是列表套字典(比如以行号为键),需先转换为列表形式再操作
  • 确保两个字典中的MPN值格式一致(大小写、空格等),否则会匹配失败,可提前做标准化处理:mpn.strip().upper()
  • 若原CSV没有Price和Stocks字段,写入前需手动将这两个字段添加到fieldnames列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:52:14