Python字典追加值问题:如何将所有Produkt-Name项存入字典?
问题分析与解决
你的问题出在每次循环都直接覆盖了test变量(或者用update时,同一个key会替换旧值),所以最终只保留了最后一条数据。要收集所有"Produkt-Name"对应的项,有两种常用方案:
方案1:用列表存储多个产品名字典
适合需要每个产品名作为独立字典的场景:
# 初始化空列表用于存放所有产品名字典 product_list = [] for col_number, element in enumerate(headings): # 先定位到"Produkt-Name"所在列,再遍历行 if element == "Produkt-Name": for row in ws.iter_rows(): cell_value = row[col_number].value if cell_value is not None: product_list.append({"productname": cell_value})
方案2:用单个字典存储所有产品名(值为列表)
适合把所有产品名集中在一个字典的场景:
# 初始化字典,value设为空列表 test = {"productname": []} for col_number, element in enumerate(headings): if element == "Produkt-Name": for row in ws.iter_rows(): cell_value = row[col_number].value if cell_value is not None: test["productname"].append(cell_value)
额外优化说明
把判断列名的逻辑移到内层循环外面,避免每行都重复判断列名,能提升代码运行效率。
内容的提问来源于stack exchange,提问作者mark boss
相关产品推荐
相关产品推荐

