python处理json文件

使用python读写json文件

json+python

  • 此文件来源于早期处理vot2018数据集时的error log,当时显示json文件中有关数据集的路径都多了一个color字符,因而无法将路径json与数据集的图片真实路径相匹配。
  • 当时对python 读写json一无所知,也就5个月前,当时心情一片迷茫,觉得paper之路道阻且长。庆幸自己一路坚持下来,如今能复现大部分paper,尤其是自动驾驶目标跟踪有关问题。
  • 今天 2021年8月13日整理桌面文件夹,发现了这个md格式文件,怕遗失早期珍贵屎(史)料,故而整理到CSDN。直接打开markdown的source code mode,ctr+c, ctr+v, 再额外做此序以记之即可。
  • 顺便提一下,markdown文件也是几个月前开始使用的,当时看到李沐大佬也用这个,再加上平时看到程序员都是用这个文本编辑器,并且自己也开始写博客,故而用之。
import json
#读取文件
file_path = r"D:/Learning_Data/BasicCode/b_annotations.json"
with open(file_path, 'r') as fp:
    js_data = json.load(fp)
    print(type(js_data))
# 遍历键值
for key in js_data:
    print(key)
# 每个键值的第一个值
for key in js_data:
    print("js_data[{}][0]:{}\n".format(key, js_data[key][0]))

dic: 有关字典操作w3school,

json语法:JSON 教程 (w3school.com.cn)

def python_json(path, data=None):
    '''
    input: 
        path,reading or writing file_path
        data, json_data
    '''
    with open(path, 'r') as fp:
        js_data = json.load(fp)
        print("loading successful!")
        return js_data
    if data is not None:
        with open(path, 'w') as f:
            json.dump(data, f)
            print("dumping successful!")
        return None

一个月后使用此脚本解析otb数据集的json,提取OTB2013, OTB50和OTB100的视频序列名字。

import json

otb2013 = r"C:\Users\lpf\Desktop\Code_of_Paper\pysot-OTB2015\testing_dataset\OTB100\CVPR13.json"
otb50 = r"C:\Users\lpf\Desktop\Code_of_Paper\pysot-OTB2015\testing_dataset\OTB100\OTB50.json"
otb100 = r"C:\Users\lpf\Desktop\Code_of_Paper\pysot-OTB2015\testing_dataset\OTB100\OTB100.json"


def read_json_to_list(json_path):
    with open(json_path, 'r') as fp:
        js_data = json.load(fp)
        datasets = [key for key in js_data]
    return datasets


otb2013_ls = read_json_to_list(otb2013)
otb50_ls = read_json_to_list(otb50)
otb100_ls = read_json_to_list(otb100)

otb13 = ['Basketball', 'Bolt', 'Boy', 'Car4', 'CarDark', 'CarScale', 'Coke', 'Couple', 'Crossing', 'David', 'David2',
         'David3', 'Deer', 'Dog1', 'Doll', 'Dudek', 'FaceOcc1', 'FaceOcc2', 'Fish', 'FleetFace', 'Football',
         'Football1', 'Freeman1', 'Freeman3', 'Freeman4', 'Girl', 'Ironman', 'Jogging-1', 'Jogging-2', 'Jumping',
         'Lemming', 'Liquor', 'Matrix', 'Mhyang', 'MotorRolling', 'MountainBike', 'Shaking', 'Singer1', 'Singer2',
         'Skating1', 'Skiing', 'Soccer', 'Subway', 'Suv', 'Sylvester', 'Tiger1', 'Tiger2', 'Trellis', 'Walking',
         'Walking2', 'Woman']

otb50 = ['Basketball', 'Biker', 'Bird1', 'BlurBody', 'BlurCar2', 'BlurFace', 'BlurOwl', 'Bolt', 'Box', 'Car1', 'Car4',
         'CarDark', 'CarScale', 'ClifBar', 'Couple', 'Crowds', 'David', 'Deer', 'Diving', 'DragonBaby', 'Dudek',
         'Football', 'Freeman4', 'Girl', 'Human3', 'Human4-2', 'Human6', 'Human9', 'Ironman', 'Jump', 'Jumping',
         'Liquor', 'Matrix', 'MotorRolling', 'Panda', 'RedTeam', 'Shaking', 'Singer2', 'Skating1', 'Skating2-1',
         'Skating2-2', 'Skiing', 'Soccer', 'Surfer', 'Sylvester', 'Tiger2', 'Trellis', 'Walking', 'Walking2', 'Woman']

otb100 = ['Basketball', 'Biker', 'Bird1', 'Bird2', 'BlurBody', 'BlurCar1', 'BlurCar2', 'BlurCar3', 'BlurCar4',
          'BlurFace', 'BlurOwl', 'Board', 'Bolt', 'Bolt2', 'Box', 'Boy', 'Car1', 'Car2', 'Car24', 'Car4', 'CarDark',
          'CarScale', 'ClifBar', 'Coke', 'Couple', 'Coupon', 'Crossing', 'Crowds', 'Dancer', 'Dancer2', 'David',
          'David2', 'David3', 'Deer', 'Diving', 'Dog', 'Dog1', 'Doll', 'DragonBaby', 'Dudek', 'FaceOcc1', 'FaceOcc2',
          'Fish', 'FleetFace', 'Football', 'Football1', 'Freeman1', 'Freeman3', 'Freeman4', 'Girl', 'Girl2', 'Gym',
          'Human2', 'Human3', 'Human4-2', 'Human5', 'Human6', 'Human7', 'Human8', 'Human9', 'Ironman', 'Jogging-1',
          'Jogging-2', 'Jump', 'Jumping', 'KiteSurf', 'Lemming', 'Liquor', 'Man', 'Matrix', 'Mhyang', 'MotorRolling',
          'MountainBike', 'Panda', 'RedTeam', 'Rubik', 'Shaking', 'Singer1', 'Singer2', 'Skater', 'Skater2', 'Skating1',
          'Skating2-1', 'Skating2-2', 'Skiing', 'Soccer', 'Subway', 'Surfer', 'Suv', 'Sylvester', 'Tiger1', 'Tiger2',
          'Toy', 'Trans', 'Trellis', 'Twinnings', 'Vase', 'Walking', 'Walking2', 'Woman']
pass

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值