json是一种数据存储文件,适合存储结构化的数据,json官网
json文件的读取
一般来说,json中的内容是字典格式,如下
1 2 3 4 5 6 7 8 { "image": "1.png", "category": "cat", "info": { "bbox": [1,2,3,4], "point": [1.2, 3.2] } }
现在我们读取其中的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 import jsonimport jsonf = open ('num.json' , 'r' ) content = f.read() a = json.loads(content) print (type (a))print (a)f.close() ''' <class 'dict'> {'image': '1.png', 'category': 'cat', 'info': {'bbox': [1, 2, 3, 4], 'point': [1.2, 3.2]}} '''
json数据的保存
下面我们保存json文件
1 2 3 4 5 6 7 8 9 10 11 12 13 import jsona = { "image" : "1.png" , "category" : "cat" , "info" : { "bbox" : [1 ,2 ,3 ,4 ], "point" : [1.2 , 3.2 ] } } b = json.dumps(a) f2 = open ('new_json.json' , 'w' ) f2.write(b) f2.close()
此时打开new_json.json文件,他的内容如下
1 {"image": "1.png", "category": "cat", "info": {"bbox": [1, 2, 3, 4], "point": [1.2, 3.2]}}
这和我们刚才的展示效果有所差别,因为他们写在了一整行,不利于阅读,想要格式化保存,只需要将dumps函数改为json.dumps(a, indent=4)
即可,indent表示缩进的大小,缩进后的数据如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "image": "1.png", "category": "cat", "info": { "bbox": [ 1, 2, 3, 4 ], "point": [ 1.2, 3.2 ] } }