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

如何从JSON数据筛选离线端点并通过Pandas导出为xlsx文件

最优实现方案

你预想的直接把数据导入Pandas再筛选的逻辑完全可行,比手动循环拼接字典的效率高很多,同时能避免你现有代码里的几个错误:

  • 字典键名大小写不一致会触发KeyError
  • append时直接写字符串没有取接口返回的对应字段值
  • 把DataFrame构建和文件导出写在循环内,每匹配到一个离线设备就重复覆写文件,性能损耗极大

优化后完整代码

import pandas as pd

# 此处response_data为接口返回的JSON格式列表数据
# 1. 直接将完整JSON列表转为DataFrame
df = pd.DataFrame(response_data)

# 2. 一键筛选状态为offline的记录
df_offline = df[df['status'] == 'offline'].copy()

# 3. 自定义输出列名,和你需要的导出表头对应
column_mapping = {
    'name': 'Name',
    'serial': 'Serial',
    'mac': 'MAC',
    'publicIp': 'Public IP',
    'networkId': 'Network ID',
    'status': 'Status',
    'lastReportedAt': 'Last Reported',
    'usingCellularFailover': 'Cellular',
    'wan1Ip': 'WAN 1',
    'wan2Ip': 'WAN 2',
    'lanIp': 'LAN'
}
# 只保留需要的字段并重命名
df_offline = df_offline.rename(columns=column_mapping)[list(column_mapping.values())]

# 4. 导出为xlsx,只有存在离线设备时才生成文件,避免无效空文件
if not df_offline.empty:
    df_offline.to_excel("output.xlsx", index=False)

方案优势

  • 全程没有手动循环拼接字典的冗余操作,所有筛选、重命名逻辑都由Pandas内置方法实现,性能更高、代码可读性更强
  • 自动适配接口返回的所有字段,不需要提前手动定义字典的每个key
  • 逻辑严谨,边缘场景适配更完善

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:24:05