JMESPath查询优化:提取wind_speed_avg对应数据并重组指定结构
JMESPath查询优化:提取wind_speed_avg对应数据并重组指定结构
我来帮你调整JMESPath查询表达式,刚好能实现你想要的结构!
你当前的查询是把每个传感器的所有数据打包成数组返回,但我们需要把每一条data记录单独拆成一个独立对象,同时把传感器的lsid作为sensor_id绑定到每一条记录上。
调整后的JMESPath表达式
sensors[].data[].{ value: wind_speed_avg || null, time: ts, sensor_id: ^.lsid }
表达式解释
sensors[]:遍历所有传感器条目.data[]:将每个传感器下的data数组展开,让每一条data记录单独成为处理单元wind_speed_avg || null:如果当前data中存在wind_speed_avg就取它的值,不存在则返回null(对应Python中的None)time: ts:直接提取当前data的时间戳tssensor_id: ^.lsid:^符号用来引用父级节点(也就是当前传感器条目)的lsid值,把它作为每条记录的sensor_id
运行结果
把这个表达式替换到你的Python代码中,得到的结果会和你期望的完全一致:
[ {"value": null, "time": 1727762400, "sensor_id": 3531}, {"value": 10, "time": 1727763300, "sensor_id": 3558}, {"value": 12, "time": 1727762896, "sensor_id": 3558}, {"value": 8.75, "time": 1727763665, "sensor_id": 3558} ]
这个写法完美契合你的需求,直接替换原来的JMESPath字符串就能用啦!
备注:内容来源于stack exchange,提问作者Claudia Sanchez
相关产品推荐
相关产品推荐

