Python 写入json 写入jsonl

Python处理json文本文件主要是以下四个函数:

函数作用
json.dumps对数据进行编码,将python中的字典 转换为 字符串
json.loads对数据进行解码,将 字符串 转换为 python中的字典
json.dump将dict数据写入json文件中
json.load打开json文件,并把字符串转换为python的dict数据

写入json的内容只能是dict类型,因此在构造写入json文件的内容时直接构造dict类型即可:

#写入json
tesdic = {
        'name': 'Tom',
        'age': 18,
        'score':
            {
                'math': 98,
                'chinese': 99
            }
    }
with open("res.jsonl", 'w', encoding='utf-8') as fw:
      json.dump(tesdic, fw, indent=4, ensure_ascii=False)


#读取json
with open("res.json", 'r', encoding='utf-8') as fw:
    newdict = json.load(fw)
    print(newdict)

json与jsonl的区别在于jsonl没有list只有并行的dict之间用"\n"分割,这也代表jsonl可以一行一行读取。反应在代码上可以看到下图中报错,JSON standard allows only one top-level value。其原因就是json格式的文件里面要求只能有一个{ },或者[ ],如果要保存多个{},应该将其组合成[{},{}]格式
在这里插入图片描述
更改为下图中的形式即可解决。
在这里插入图片描述

另一种方式就是使用jsonline:

    import jsonline
    with jsonlines.open('../output.jsonl', mode='a') as writer:
        writer.write(dict)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值