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/

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐