使用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