您的位置:

shell编程json,shell编程100例

本文目录一览:

何用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; iemployees.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,可以使dic中的中文正常转换

2、若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的方法

最后写成了这个样子,