我们常常会遇到这样的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