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

如何用Python函数将指定JSON转为Pandas DataFrame并提取SensorID

实现JSON到指定结构DataFrame的Python函数

需求说明

需要实现名为ImporterFunction的Python函数,接收JSON字符串输入,转换为指定结构的Pandas DataFrame,同时返回该DataFrame和对应的SensorID。函数调用形式为:

sensor_data_df, sensorID = ImporterFunction(json_str)

参数与输出要求:

  • 输入json_str为字符串类型
  • 输出sensor_data_df为Pandas DataFrame类型
  • 输出sensorID为字符串类型

输入JSON格式示例

{"SensorId": "B22EA071",
"startUTC": 1671490577,
"endUTC": 1671516101,
"Data": [
    {
        "TimeStamp": 1671490584,
        "V1": 21.1
    },
    {
        "TimeStamp": 1671490666,
        "V1": 21
    }]}

目标DataFrame结构

startUTCendUTCTimestampV1
16714905771671516101167149058421.1
16714905771671516101167149066621

实现代码

import json
import pandas as pd

def ImporterFunction(json_str):
    # 解析JSON字符串为字典
    data_dict = json.loads(json_str)
    
    # 提取SensorID
    sensorID = data_dict["SensorId"]
    
    # 提取全局的startUTC和endUTC
    start_utc = data_dict["startUTC"]
    end_utc = data_dict["endUTC"]
    
    # 处理数据条目,添加全局时间范围并统一列名
    processed_data = []
    for item in data_dict["Data"]:
        processed_item = {
            "startUTC": start_utc,
            "endUTC": end_utc,
            "Timestamp": item["TimeStamp"],
            "V1": item["V1"]
        }
        processed_data.append(processed_item)
    
    # 转换为DataFrame并调整列顺序
    sensor_data_df = pd.DataFrame(processed_data)[["startUTC", "endUTC", "Timestamp", "V1"]]
    
    return sensor_data_df, sensorID

代码说明

  1. JSON解析:用json.loads()把输入字符串转成Python字典,方便提取字段。
  2. SensorID提取:直接从字典中取出SensorId字段值。
  3. 数据预处理:遍历Data列表中的每个时间点数据,为每个条目补充全局的startUTC和endUTC,同时把TimeStamp重命名为Timestamp匹配目标列名。
  4. 生成DataFrame:将预处理后的列表转成DataFrame,并调整列顺序确保和目标结构一致。
  5. 结果返回:返回生成的DataFrame和SensorID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:55:31