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

Python中删除JSON所有ts键报错KeyError 0,求解决方法

解决JSON中删除所有machine下ts键的问题

问题原因

你遇到的KeyError 0,大概率是错误地用数字索引(比如pop(0))去操作字典的键。因为ts是字符串类型的键,不是数组索引,直接用数字会导致找不到键报错。

解决方案(Python实现)

假设你已经将JSON文件加载为Python字典,按以下步骤处理:

  1. 遍历Essais下的每台机器
  2. 对每台机器里的temperature和humidity数组,逐个删除其中对象的ts键

示例代码:

import json

# 读取JSON文件
with open('your_file.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

# 遍历所有机器
for machine_name, machine_data in data['Essais'].items():
    # 遍历机器下的传感器类型(temperature、humidity)
    for sensor_type, sensor_list in machine_data.items():
        # 遍历传感器数组中的每个数据对象
        for item in sensor_list:
            # 安全删除ts键,即使键不存在也不会报错
            item.pop('ts', None)
            # 若确定所有对象都有ts键,也可以用 del item['ts']

# 保存修改后的JSON
with open('modified_file.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=2, ensure_ascii=False)

代码说明

  • data['Essais'].items():自动遍历所有机器(不管是machine、machine2还是其他命名的机器)
  • sensor_list对应temperature或humidity的数组,每个元素是包含ts和value的字典
  • item.pop('ts', None):避免因个别对象无ts键而报错,适配更复杂的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:55:27