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

使用pandas将含多服务器信息的CSV/Excel转换为JSON文件

CSV转多服务器JSON方案

原代码失效原因

  • 读取CSV时硬编码3列列名,仅适配单服务器场景,多服务器时超出的列会被直接丢弃
  • 逻辑固定取第三列值生成字典,没有识别横向排列的多服务器表头、逐服务器提取属性的逻辑
  • 未实现默认字段补全逻辑

示例CSV结构说明

提供的CSV为横向排布结构:

  • 存在一行专门的服务器表头,从第4列开始每一列对应一台服务器,列值为Server X
  • 表头行下方的有效行,第2列为属性名,对应服务器列的单元格为该服务器的属性值
  • 空行、空单元格需要过滤,空值统一填充为NA

优化后代码

import pandas as pd
import json

# 全量读取CSV,不预定义列名
df = pd.read_csv(
    'C:/Users/Downloads/替换为你的CSV文件路径.csv',
    engine='python',
    encoding='unicode_escape',
    header=None,
    skipinitialspace=True
)

# 清理全空行、全空列
df = df.dropna(how='all', axis=0).dropna(how='all', axis=1).reset_index(drop=True)

# 自动定位服务器表头行
server_header_row = df[df.apply(lambda x: x.astype(str).str.contains(r'Server \d+', na=False).any(), axis=1)].index[0]
# 提取所有服务器名称、对应列索引
server_names = df.loc[server_header_row].dropna().tolist()
server_cols = df.loc[server_header_row][df.loc[server_header_row].notna()].index.tolist()

# 提取有效属性行:第一列序号非空、且在表头行下方
attr_df = df[(df.iloc[:, 0].notna()) & (df.index > server_header_row)].reset_index(drop=True)
# 清洗属性名:移除*、?、多余空格
attr_names = attr_df.iloc[:, 1].str.replace(r'[\*\?]', '', regex=True).str.replace(r'\s+', '', regex=True).tolist()

# 定义需要补全的默认属性,默认值为NA
default_fields = {
    "Storage(EBS-GP3)-Rootvolume": "NA",
    "Storage(EBS-GP3)-additionalstorage": "NA",
    "FileSystem1": "NA",
    "Volume1": "NA",
    "FileSystem2": "NA"
}

output = []
# 逐台服务器生成属性字典
for srv_name, srv_col in zip(server_names, server_cols):
    srv_data = default_fields.copy()
    # 填充CSV中读取到的属性值
    for attr, val in zip(attr_names, attr_df[srv_col].fillna("NA").tolist()):
        srv_data[attr] = val
    output.append({srv_name: srv_data})

# 写入JSON文件,支持中文、格式化缩进
with open('C:/Users/user/Downloads/TEST.json', 'w', encoding='utf-8') as f:
    json.dump(output, f, indent=4, ensure_ascii=False)

代码特性

  • 自动适配任意数量的服务器,无需手动修改列配置
  • 输出为标准JSON格式,和预期结构完全匹配
  • 自动补全指定的默认字段,CSV中存在对应属性时会自动覆盖默认NA值
  • 保留原有属性名清洗规则,自动移除特殊字符、多余空格
  • 空值统一填充为NA,自动过滤全空行/列的冗余数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:42:27