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

如何使用Python提取JSON中cell_info子集并转换为CSV文件

解决方法

你不需要完全重写现有逻辑,只要针对嵌套结构筛选和扁平化处理即可,调整后的代码如下:

import json
import csv

# 嵌套字典打平工具函数
def flatten_dict(d, parent_key='', sep='.'):
    items = []
    for k, v in d.items():
        new_key = f"{parent_key}{sep}{k}" if parent_key else k
        if isinstance(v, dict):
            items.extend(flatten_dict(v, new_key, sep=sep).items())
        else:
            items.append((new_key, v))
    return dict(items)

# 读取JSON文件
with open(r'C:\Users\chick\Desktop\Jsons\home\support\bcfiles\$$5liZwDzM-Interfaces.json', 'r', encoding='utf-8') as json_file:
    data = json.load(json_file)

interface_data = data['interfaces']
cell_info_list = []

# 筛选并处理所有带cell_info的接口
for iface in interface_data:
    if 'cell_info' in iface:
        # 打平嵌套的cell_info结构
        flattened_cell = flatten_dict(iface['cell_info'])
        cell_info_list.append(flattened_cell)

# 写入CSV
if cell_info_list:
    with open(r'C:\Users\chick\Desktop\Jsons\data_file.csv', 'w', encoding='utf-8', newline='') as data_file:
        csv_writer = csv.DictWriter(data_file, fieldnames=cell_info_list[0].keys())
        csv_writer.writeheader()
        csv_writer.writerows(cell_info_list)
核心修改点
  • 新增flatten_dict函数,将多层嵌套的cell_info结构转为单层键值对,嵌套层级用.连接,比如原结构里的carriers.primary.band会直接作为CSV的列名
  • 遍历interfaces时增加筛选逻辑,仅处理包含cell_info字段的接口条目,过滤以太网等其他类型的接口
  • 改用csv.DictWriter写入数据,自动匹配打平后的字段列,避免表头和内容错位
  • 新增文件编码指定和newline=''参数,避免Windows下CSV出现多余空行、乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:21:03