如何从JSON文件提取数据

劳尔·加西亚·桑切斯(Raul Garcia Sanchez)

我有bin在寻找解决方案来解决我的问题,但是找不到或更好的说我没有得到所找到的解决方案。因此,让我们谈谈我的问题是什么。我在Raspberry Pi上使用了智能家居控制软件,正如本周末我发现的那样,我使用pilight-receive可以从室外温度传感器捕获数据。pilight-receive的输出如下所示:

{
        "message": {
                "id": 4095,
                "temperature": 409.5
        },
        "origin": "receiver",
        "protocol": "alecto_wsd17",
        "uuid": "0000-b8-27-eb-0f3db7",
        "repeats": 3
}
{
        "message": {
                "id": 1490,
                "temperature": 25.1,
                "humidity": 40.0,
                "battery": 1
        },
        "origin": "receiver",
        "protocol": "alecto_ws1700",
        "uuid": "0000-b8-27-eb-0f3db7",
        "repeats": 3
}
{
        "message": {
                "id": 2039,
                "temperature": 409.5
        },
        "origin": "receiver",
        "protocol": "alecto_wsd17",
        "uuid": "0000-b8-27-eb-0f3db7",
        "repeats": 4
}

现在我要问的是:我该如何从id为1490的地方提取温度和湿度。您将如何建议我经常进行检查?通过每10分钟运行一次cron作业,创建pilight-receive的输出,提取输出的数据并将其推送到Smart Home Control Api。

有人有一个主意-非常感谢

案子

您可以用来jq在Shell中处理json文件。

例如,我将您的示例json文件另存为raul.json,然后运行:

$ jq .message.temperature raul.json 
409.5
25.1
409.5
$ jq .message.humidity raul.json 
null
40
null

jq已为大多数linux发行版预先打包。

可能有一种方法可以jq自己完成,但是我发现在一行上同时获得两个想要的值的最简单方法是use xargs例如:

$ jq 'select(.message.id == 1490) | .message.temperature, .message.humidity' raul.json | xargs
25.1 40

或者,如果您想遍历每个.message.id实例,我们可以添加.message.id到输出中并使用,xargs -n 3因为我们知道将有三个字段(id,温度,湿度):

jq '.message.id, .message.temperature, .message.humidity' raul.json | xargs -n 3
4095 409.5 null
1490 25.1 40
2039 409.5 null

然后,您可以使用awk或其他方式对该输出进行后处理。


最后,python和perl都具有出色的库,用于解析和处理json数据。与其他几种语言一样,包括php和java。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从json文件中提取数据

来自分类Dev

如何从JSON文件中提取这些数据项?

来自分类Dev

如何从具有多个值的JSON文件中提取数据

来自分类Dev

如何从此json提取数据?

来自分类Dev

如何从 JSON 中提取数据?

来自分类Dev

如何从python中.json文件中给定格式的.csv文件中提取数据?

来自分类Dev

Python程序从JSON文件提取数据

来自分类Dev

从C ++文件中提取JSON数据

来自分类Dev

从JSon文件中提取数据的Null参考

来自分类Dev

将数据从JSON文件提取到CSV

来自分类Dev

从 CSV 文件中提取 JSON 数据

来自分类Dev

如何从Haskell中的文件提取数据

来自分类Dev

如何从.csv文件提取数据并创建图?

来自分类Dev

如何从GML文件中提取数据

来自分类Dev

如何从Hadoop序列文件中提取数据?

来自分类Dev

如何从日志文件中提取数据

来自分类Dev

如何从C中的文件中提取数据

来自分类Dev

如何从UNIX文件中提取数据?

来自分类Dev

如何使用从JSON文件提取的数据更新家庭小部件

来自分类Dev

如何等待提取json文件中的数据然后继续

来自分类Dev

如何从JSON文件中提取数据来编写测试用例

来自分类Dev

如何通过从 json 文件中提取数据将键值对数组加载到状态?

来自分类Dev

如何从不断更新的外部 JSON 文件中提取数据?

来自分类Dev

如何将非结构化数据文件提取到 json 对象上

来自分类Dev

如何提取json数据并插入mysql php

来自分类Dev

如何提取JSON字符串数据?

来自分类Dev

如何使用Text.JSON提取数据?

来自分类Dev

如何从JSON数据中提取特定的键值?

来自分类Dev

如何从响应中提取JSON数据-Java