良许Linux教程网 干货合集 Linux中操作json文件具体方法

Linux中操作json文件具体方法

python脚本中读取配置文件通常将配置文件放在json格式的文件中,然后做后续的处理,那么在linux服务器上编辑和读取json文件有什么技巧呢?来看一下吧,

img

Json数据格式化

json是一种轻量级的数据交换格式,应用范围非常广泛。在Linux系统下使用jq工具可以非常方便的处理json

[root@knode1 ~]# cat k8s.conf
{"hosts": {"host_list": [ {"hostname""host1""ip""10.1.251.1""username""aps""password""tingsoft""ssh_port": 22}, {"hostname""host24""ip""10.1.251.2""username""aps", ssword": "tingsoft", "ssh_port": 22} ], "sshkey_enable": false, "data_dir": "/opt", "src":"/etc/localtime", "dest": "/etc/timezone", "port": "8080" } }1.2.

在linux上安装jq工具

[root@knode1 ~]# yum -y install jq1.

将上面k8s.conf文件用json格式展示,提高可读性

  • 方法一:cat filename.conf | jq
[root@knode1 ~]# cat k8s.conf | jq
{
"hosts": {
"host_list": [
{
"hostname""host1",
"ip""10.1.251.1",
"username""aps",
"password""tingsoft",
"ssh_port": 22
},
{
"hostname""host24",
"ip""10.1.251.2",
"username""aps",
"password""tingsoft",
"ssh_port": 22
}
],
"sshkey_enable"false,
"data_dir""/opt",
"src""/etc/localtime",
"dest""/etc/timezone",
"port""8080"
}
}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.

jq工具会把json文件更有好的读取出来,此外,jq工具还在背后检查json文件的合法性,如果文件存在格式上的错误,jq也会报出错误存在的位置

  • 方法二:cat filename.conf | python -m json.tool

python -m json.tool这种方法需要服务器上安装python,效果和jq一样,也会校验数据合法性,出现格式报错会报出位置

[root@knode1 ~]# cat k8s.conf |  python -m json.tool
Expecting object: line 1 column 343 (char 342)1.2.

Json数据读取

  • 通过Key获取Value的值
[root@knode1 ~]# cat k8s.conf | jq .hosts
{
"host_list": [
{
"hostname""host1",
"ip""10.1.251.1",
"username""aps",
"password""tingsoft",
"ssh_port": 22
},
{
"hostname""host24",
"ip""10.1.251.2",
"username""aps",
"password""tingsoft",
"ssh_port": 22
}
],
"sshkey_enable"false,
"data_dir""/opt",
"src""/etc/localtime",
"dest""/etc/timezone",
"port""8080"
}
[root@knode1 ~]# cat k8s.conf | jq .hosts.host_list
[
{
"hostname""host1",
"ip""10.1.251.1",
"username""aps",
"password""tingsoft",
"ssh_port": 22
},
{
"hostname""host24",
"ip""10.1.251.2",
"username""aps",
"password""kingsoft",
"ssh_port": 22
}
]1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.

解析不存在的元素key时,会返回null,.hosts.host_list这种属于嵌套解

  • 自定义输出数组

对于上面jq .hosts.host_list获取的结果,还可以通过【】数组形式获取

[root@knode1 ~]# cat k8s.conf | jq .hosts.host_list[0]
{
"hostname""host1",
"ip""10.1.251.1",
"username""ups",
"password""tingsoft",
"ssh_port": 22
}1.2.3.4.5.6.7.8.

掌握了上面这些基本的数据处理方法,我们就可以在linux和python脚本中做一些配置的基础处理了。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部