m0_52639848 2024-05-02 13:33 采纳率: 0%
浏览 5
已结题

ETLCloud 处理json多层级问题

ETLCloud 处理json多层级问题
在处理获取到的本地json后,把输入存储到数据库中。子集的json数据无法获取到。

img


本地json


{
    "dataContent": [
        {
            "alarm": "1",
            "gasName": "瓦斯", 
            "name": "挂布台车"
        },
        {
            "alarm": "0",
            "gasName": "风速",
            "name": "挂布台车"
        }
    ],
    "moduleID": "c49cb65-9cc4-432b-a769-77bf5a922d01",
    "moduleName": "实时数据"
}
  

希望处理成为的结构


{
    "dataContent": [ 
            {
                "alarm": "1",
                "gasName": "瓦斯", 
                "name": "挂布台车",
                "moduleID": "c49cb65-9cc4-432b-a769-77bf5a922d01",
                "moduleName": "实时数据"
            },
            {
                "alarm": "0",
                "gasName": "风速",
                "name": "挂布台车",
                "moduleID": "c49cb65-9cc4-432b-a769-77bf5a922d01",
                "moduleName": "实时数据"
            } 
    ]
} 
  • 写回答

23条回答 默认 最新

  • 专家-皆知 2024-05-02 13:33
    关注
    获得0.15元问题酬金

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    要将原始JSON结构调整为你希望的格式,可以通过遍历原始数据并添加所需字段到每个子对象来实现。这里提供一个简单的Python示例代码来完成这项任务。

    import json
    
    # 原始JSON数据字符串
    original_json = '''
    {
        "dataContent": [
            {
                "alarm": "1",
                "gasName": "瓦斯", 
                "name": "挂布台车"
            },
            {
                "alarm": "0",
                "gasName": "风速",
                "name": "挂布台车"
            }
        ],
        "moduleID": "c49cb65-9cc4-432b-a769-77bf5a922d01",
        "moduleName": "实时数据"
    }
    '''
    
    # 解析原始JSON数据
    data = json.loads(original_json)
    
    # 提取需要添加到子对象中的字段
    module_id = data.get("moduleID")
    module_name = data.get("moduleName")
    
    # 遍历"dataContent",为每个子对象添加"moduleID"和"moduleName"
    for item in data["dataContent"]:
        item["moduleID"] = module_id
        item["moduleName"] = module_name
    
    # 构建新的JSON结构,仅保留修改后的"dataContent"
    new_data = {"dataContent": data["dataContent"]}
    
    # 转换回JSON字符串
    new_json_string = json.dumps(new_data, ensure_ascii=False, indent=4)
    
    print(new_json_string)
    

    这段代码首先解析了原始的JSON字符串,然后提取出moduleIDmoduleName字段的值。接着,对dataContent列表中的每个字典(子对象)进行遍历,并将提取出的字段添加进去。最后,构建了一个新的JSON结构,仅包含修改后的dataContent部分,并以美化格式打印出来。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 创建了问题 5月2日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重