jimkongho 2022-05-02 18:33 采纳率: 80%
浏览 46
已结题

json批量追加数据问题

import os
import json

path = r'path'      #原数据路径
json_list = os.listdir(path)
path_n = r'path'    #新数据路径
json_list_n = os.listdir(path_n)

i = 0
for f in json_list:
    if os.path.splitext(f)[-1] == '.json':
        i += 1
        print('原__',f)
        with open(os.path.join(path,f),'r',encoding='utf-8') as load_f:
            data_old  = json.load(load_f)
            shape = data_old['shapes'][-1]
            #print(shape)

for f_n in json_list_n:
    if os.path.splitext(f_n)[-1] == '.json':
        i += 1
        print('新__',f_n)
        with open(os.path.join(path_n,f_n),'r',encoding='utf-8') as dump_f:
            data_new  = json.load(dump_f)
            data_new['imageData'] = None
            shape_n = data_new['shapes']
            shape_n.append(shape)
            #print(shape_n)
        with open(os.path.join(path_n,f_n),'w',encoding='utf-8') as f_add:
            json.dump(data_new,f_add,indent=2)



有原4个json文件和新的4个json文件,我想要新的json数据分别更新到原的json里面。为什么我写的代码不能一对一更新?
比如我要的结果是: 原1.json更新到新1.json; 原2.json更新到新2.json。
但现在的结果是只能看到原4.json 统一更新到新 1 2 3 4。需要修改哪里呀

  • 写回答

1条回答 默认 最新

  • 我不喜欢这个世界 2022-05-02 20:46
    关注
    import os
    import json
    
    path = r'path'  # 原数据路径
    json_list = os.listdir(path)
    path_n = r'path'  # 新数据路径
    json_list_n = os.listdir(path_n)
    
    for index in range(len(json_list)):
        if os.path.splitext(json_list[index])[-1] == '.json':
    
            print('原__', json_list[index])
            with open(os.path.join(path, json_list[index]), 'r', encoding='utf-8') as load_f:
                data_old = json.load(load_f)
                shape = data_old['shapes'][-1]
                # print(shape)
            if os.path.splitext(json_list_n[index])[-1] == '.json':
                print('新__', json_list_n[index])
                with open(os.path.join(path_n, json_list_n[index]), 'r', encoding='utf-8') as dump_f:
                    data_new = json.load(dump_f)
                    data_new['imageData'] = None
                    shape_n = data_new['shapes']
                    shape_n.append(shape)
                    # print(shape_n)
                with open(os.path.join(path_n, json_list_n[index]), 'w', encoding='utf-8') as f_add:
                    json.dump(data_new, f_add, indent=2)
    

    确保顺序一致,不值得话先排个序就行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月2日
  • 已采纳回答 5月2日
  • 创建了问题 5月2日

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献