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

如何用Pandas优化Excel转指定JSON格式并过滤空标签项

优化Excel转JSON代码(移除空Scope条目)

问题分析

原代码硬编码了三组Scope-Tag对,会把空Scope的条目也加入到tags列表中,不符合预期格式。需要动态过滤掉无值的Scope条目,同时简化代码逻辑。

优化后的代码

import pandas as pd
import json  # 可选,用于输出标准JSON格式

# 读取Excel文件
df = pd.read_excel(r'C:\Users\xcdfr\Desktop\VMtag\vmtag.xlsx', header=1, index_col=None)

# 固定外部ID(若需按VM动态取值,可改为row['对应列名'])
EXTERNAL_ID = "500cbe10-e7d6-189d-15ae-e60b85326cd3"

# 逐行处理生成目标结构
for _, row in df.iterrows():
    valid_tags = []
    # 遍历所有Scope-Tag组(支持扩展更多组)
    for idx in range(1, 4):
        scope_col = f"Scope{idx}"
        tag_col = f"Tag{idx}"
        scope_val = row[scope_col]
        tag_val = row[tag_col]
        
        # 过滤空Scope(排除NaN、空字符串)
        if pd.notna(scope_val) and str(scope_val).strip():
            valid_tags.append({"scope": scope_val, "tag": tag_val})
    
    tag_data = {"external_id": EXTERNAL_ID, "tags": valid_tags}
    # 打印原生字典或标准JSON格式
    print(tag_data)
    # print(json.dumps(tag_data, indent=2))  # 可选,输出格式化的标准JSON

优化说明

  • 用iterrows()遍历行,替代索引遍历,代码更简洁易读
  • 循环处理多组Scope-Tag,避免重复代码,后续扩展组只需修改循环范围
  • 通过pd.notna()和字符串过滤,精准移除无值的Scope条目
  • 可选使用json.dumps()输出标准JSON格式(双引号),符合JSON语法规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:32:51