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 nrf52810-c三个a 程序
  • ¥15 lego-loam跑出来的roll误差很大
  • ¥50 求一个半透明没有锯齿的圆角窗体的实现例子
  • ¥15 STM32cubeMX里的FreeRTOS无法释放内存
  • ¥15 CATIA有些零件打开直接单机确定终止
  • ¥15 请问有会的吗,用MATLAB做
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对