python向json文件中追加内容

我们常常会遇到这样的json文件:

[{"id": 4, "text": "LOC", "background_color": "#7c20e0", "text_color": "#ffffff"}, 
  {"id": 5, "text": "MISC", "background_color": "#fbb028", "text_color": "#000000"}, 
  {"id": 6, "text": "ORG", "background_color": "#e6d176", "text_color": "#000000"}, 
  {"id": 7, "text": "PER", "background_color": "#6a74b9", "text_color": "#ffffff"},
  {"id": 10, "text": "DATE", "background_color": "#7c20e0", "text_color": "#ffffff"}, 
  {"id": 10, "text": "DATE", "background_color": "#7c20e0", "text_color": "#ffffff"}]

可以看出文件的开头和结尾是“[”,“]”,这种文件中的每一行(一个记录)都是一个字典(dict),然后把所有的字典对象添加至列表中(list)。那么,我们如何来追加内容呢?

方法:
(1)先创建一个列表
(2)将当前json文件中已有的内容读入(append)列表中。
(3)将新增的内容以字典形式添加至列表中。
(4)使用json.dump()将该列表写回原文件。

python实现:

def write_json(obj):
    '''
    写入/追加json文件
    :param obj:
    :return:
    '''

    #首先读取已有的json文件中的内容
    item_list = []
    with open('labels.json', 'r') as f:
        load_dict = json.load(f)
        num_item = len(load_dict)
        for i in range(num_item):
            id = load_dict[i]['id']
            text = load_dict[i]['text']

            background_color = load_dict[i]['background_color']
            text_color = load_dict[i]['text_color']
            item_dict = {'id':id, 'text':text,'background_color':background_color, 'text_color':text_color}
            item_list.append(item_dict)
    #读取已有内容完毕
    #将新传入的dict对象追加至list中
    item_list.append(obj)
    #将追加的内容与原有内容写回(覆盖)原文件
    with open('labels.json', 'w', encoding='utf-8') as f2:
        json.dump(item_list, f2, ensure_ascii=False)



#obj字典对象为新增内容
obj = {"id": 10,"text": "DATE","background_color": "#7c20e0","text_color": "#ffffff"}
write_json(obj)

参考:https://blog.csdn.net/broccoli2/article/details/103325434

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值