文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux运维之json文件操作

代码小侠客

代码小侠客

2024-04-23 23:38

关注

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

  Json数据格式化

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

  复制

  1.  [root@knode1 ~]# cat k8s.conf

  2.  {"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

  在linux上安装jq工具

  复制

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

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

  复制

  1.  [root@knode1 ~]# cat k8s.conf | jq

  2.  {

  3.  "hosts": {

  4.  "host_list": [

  5.  {

  6.  "hostname": "host1",

  7.  "ip": "10.1.251.1",

  8.  "username": "aps",

  9.  "password": "tingsoft",

  10.  "ssh_port": 22

  11.  },

  12.  {

  13.  "hostname": "host24",

  14.  "ip": "10.1.251.2",

  15.  "username": "aps",

  16.  "password": "tingsoft",

  17.  "ssh_port": 22

  18.  }

  19.  ],

  20.  "sshkey_enable": false,

  21.  "data_dir": "/opt",

  22.  "src": "/etc/localtime",

  23.  "dest": "/etc/timezone",

  24.  "port": "8080"

  25.  }

  26.  }

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

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

  复制

  1.  [root@knode1 ~]# cat k8s.conf | python -m json.tool

  2.  Expecting object: line 1 column 343 (char 342)

  Json数据读取

  复制

  1.  [root@knode1 ~]# cat k8s.conf | jq .hosts

  2.  {

  3.  "host_list": [

  4.  {

  5.  "hostname": "host1",

  6.  "ip": "10.1.251.1",

  7.  "username": "aps",

  8.  "password": "tingsoft",

  9.  "ssh_port": 22

  10.  },

  11.  {

  12.  "hostname": "host24",

  13.  "ip": "10.1.251.2",

  14.  "username": "aps",

  15.  "password": "tingsoft",

  16.  "ssh_port": 22

  17.  }

  18.  ],

  19.  "sshkey_enable": false,

  20.  "data_dir": "/opt",

  21.  "src": "/etc/localtime",

  22.  "dest": "/etc/timezone",

  23.  "port": "8080"

  24.  }

  25.  [root@knode1 ~]# cat k8s.conf | jq .hosts.host_list

  26.  [

  27.  {

  28.  "hostname": "host1",

  29.  "ip": "10.1.251.1",

  30.  "username": "aps",

  31.  "password": "tingsoft",

  32.  "ssh_port": 22

  33.  },

  34.  {

  35.  "hostname": "host24",

  36.  "ip": "10.1.251.2",

  37.  "username": "aps",

  38.  "password": "kingsoft",

  39.  "ssh_port": 22

  40.  }

  41.  ]

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

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

  复制

  1.  [root@knode1 ~]# cat k8s.conf | jq .hosts.host_list[0]

  2.  {

  3.  "hostname": "host1",

  4.  "ip": "10.1.251.1",

  5.  "username": "ups",

  6.  "password": "tingsoft",

  7.  "ssh_port": 22

  8.  }

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

  来源: 运维之美

  >>>>>>点击进入系统运维专题

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-运维
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯