.jsonl,jsonlines比json格式更好用的文件格式
jsonlines文件介绍
之前一直用的都是键值对的json文件格式,觉得很好用;其实格式化之后的还可以,比较直观;但是很多时候我们看到的json文件都是一整行文本看的很不舒服。
如下(这还是根据屏幕换行之后的效果):
因此,就有想法说换成一行一个文本,也就是jsonlines做的事情,其实就是把json每一个小的单元(不知道怎么称谓这东东),引用官网的一个例子
{
{
"name": "Gilbert",
"wins": [
[
"straight",
"7"
],
[
"one pair",
"10"
]
]
}
{
"name": "Alexa",
"wins": [
[
"two pair",
"4"
],
[
"two pair",
"9"
]
]
}
}
json文件转为jsonlines
import jsonlines
import json
with jsonlines.open(write_path, "w") as wfd:
with open(read_path, "r", encoding='utf-8') as rfd:
for data in rfd:
data = json.loads(data)#注意,这里json文件格式不同,写法也不同,具体看文件,,注意区别json.load()与json.loads()
wfd.write(data)
jsonlines转为json文件(原因是jsonlines虽然好用,但并未通用,很多配置文件等都用的json格式)
import jsonlines
import json
with jsonlines.open(read_path, "r") as rfd:
with open(write_path, "w", encoding='utf-8') as wfd:
for data in rfd:
json.dump(data, wfd, indent=4, ensure_ascii=False)
可以看一下重新生成的json文件:
其他相关问题
查看官网说明:http://jsonlines.org/