当前位置: 首页 > 科技观察

linux运维之json文件操作

时间:2023-03-12 01:59:01 科技观察

Json数据格式化json是一种轻量级的数据交换格式,应用范围很广。在Linux系统下使用jq工具处理json非常方便[root@knode1~]#catk8s.conf{"hosts":{"host_list":[{"hostname":"host1","ip":“10.1.251.1”,“用户名”:“aps”,“密码”:“tingsoft”,“ssh_port”:22},{“主机名”:“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"}}在linux上安装jq工具[root@knode1~]#yum-yinstalljq将上面的k8s.conf文件以json格式显示,提高可读性方法1:catfilename.conf|jq[root@knode1~]#catk8s.conf|jq{"hosts":{"host_list":[{"hostname":"host1","ip":"10.1.251.1",“用户名”:“aps”,“密码”:“tingsoft”,“ssh_port”:22},{“主机名”:“host24”,“ip”:“10.1.251.2”,“用户名”:“aps”,“密码”:“tingsoft”,“ssh_port”:22}],“sshkey_enable”:false,“data_dir”:“/opt”,“src”:“/etc/localtime”,“dest”:“/etc/timezone","port":"8080"}}jq工具将r更好地读取json文件。另外jq工具也在后台检查json文件的合法性。如果文件中存在格式错误,jq也会报告错误存在的位置。方法二:catfilename.conf|Pythonn-mjson.toolpython-mjson.tool该方法需要在服务器上安装python。效果和jq是一样的,同样会验证数据的有效性。如果有格式错误,会报location[root@knode1~]#catk8s.会议|python-mjson.toolExpectingobject:line1column343(char342)读取Json数据通过Key获取Value的值[root@knode1~]#catk8s.conf|jq.hosts{"host_list":[{"hostname":"host1","ip":"10.1.251.1","username":"aps","password":"tingsoft","ssh_port":22},{“主机名”:“host24”,“ip”:“10.1.251.2”,“用户名”:“aps”,“密码”:“tingsoft”,“ssh_port”:22}],“sshkey_enable”:假,"data_dir":"/opt","src":"/etc/localtime","dest":"/etc/timezone","port":"8080"}[root@knode1~]#catk8s.conf|jq.hosts.host_list[{"主机名":"host1","ip":"10.1.251.1","用户名":"aps","密码":"tingsoft","ssh_port":22},{"hostname":"host24","ip":"10.1.251.2","username":"aps","password":"kingsoft","ssh_port":22}]解析不存在的元素key时,会返回null,比如.hosts.host_list嵌套解决方案自定义输出数组对于上面jq.hosts.host_list得到的结果,也可以通过[]array[root@knode1~]#catk8s.会议|jq.hosts.host_list[0]{"主机名me":"host1","ip":"10.1.251.1","username":"ups","password":"tingsoft","ssh_port":22}掌握了以上基本的数据处理方法,我们就可以了可以在linux和python脚本中做一些基本的配置处理