shell编程json,shell编程100例

发布时间:2022-11-23

本文目录一览:

1、何用shell或者python脚本格式化 json后缀名文件,并保存 2、Linux Shell格式化Json 3、如何通过shell取得下面JSON里的数据 4、如何用shell或者python脚本格式化 json后缀名文件,并保存文件,求助 5、Linux Shell jq比较json是否相同

何用shell或者python脚本格式化 json后缀名文件,并保存

import json
str = "{'price': 542.23, 'name': 'ACME', 'shares': 100}"
parsed = json.loads(str.replace('\'', '"'))
print(json.dumps(parsed, indent=4, sort_keys=True))

Linux Shell格式化Json

Linux下查看格式化输出json 使用json在线解析可以解决问题 其实Linux下有现成的工具可以很好的显示

  1. 直接以文本形式展现 输入 回车显示结果
  2. 如果json保存在文件里比如 可以使用 即可格式化查看json如图 我们平常使用curl测试返回的数据也可以这样格式化输出 编写Shell脚本 保存为文件abc.sh 比较清晰了 这也算是平时积累的小技巧

如何通过shell取得下面JSON里的数据

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class DoJSON {
    public static void main(String[] args) {
        JSONArray employees = new JSONArray(); // JSON数组
        JSONObject employee = new JSONObject(); // JSON对象
        employee.put("firstName", "Bill"); // 按键-值形式存储数据JSON对象
        employee.put("lastName", "Gates");
        employees.add(employee); // JSON对象加入JSON数组
        employee.put("firstName", "George");
        employee.put("lastName", "Bush");
        employees.add(employee);
        employee.put("firstName", "Thomas");
        employee.put("lastName", "Carter");
        employees.add(employee);
        System.out.println(employees.toString());
        for (int i = 0; i < employees.size(); i++) {
            JSONObject emp = employees.getJSONObject(i);
            System.out.println(emp.toString());
            System.out.println("FirstName :\t" + emp.get("firstName"));
            System.out.println("LastName : \t" + emp.get("lastName"));
        }
    }
}

K

如何用shell或者python脚本格式化 json后缀名文件,并保存文件,求助

不知道你用的哪个版本的python 我使用python3可以处理有中文的json文件 读写json文件: 首先 import json

  • load() / loads()
  • dump() / dumps() 一、从文件: json转Python数据结构:json.load
fo = open('data.json', 'r')
data = json.load(fo)

python数据结构转json:json.dump

fo = open('data.json', 'r')
json.dump(data, fo)

二、python字符串和json之间互相转换:

json_str = json.dumps(data)
data = json.loads(json_str)

三、json格式化输出:

  1. 格式化打印 pprint
  2. 格式化输出 在编码JSON的时候,还有一些选项很有用。如果你想获得漂亮的格式化字符串后输出,可以使用 json.dumps()indent 参数。 它会使得输出和 pprint() 函数效果类似。比如:
print(json.dumps(data, indent=4))
fo = open('data.json', 'r')
json.dump(data, fo, indent=4)

四、带有中文的json转换:

jsondata = json.dumps(dics, ensure_ascii=False, indent=4)

dumps 方法中加入参数 ensure_ascii=False,可以使 dics 中的中文正常转换 若python的数据中既有普通字符,又有Unicode字符串,上述方法则不行,还要在后面加上 .encode('utf-8') 手动转换成utf-8编码:

jsondata = json.dumps(dics, ensure_ascii=False, indent=4).encode('utf-8')

Linux Shell jq比较json是否相同

问题:shell下使用jq比较两个json是否相等,第一个难点是KEY需要排序,第二个难点是array需要排序 Jq 本身提供 -S 参数使key进行排序 不过无法处理array. jq提供了walk功能可以对所有的key进行遍历,同时他的example1就展示了如何对array进行排序,但apt中提供的jq不具有这个功能。 在github上找到了可以在jq1.5中使用walk的方法 最后写成了这个样子,