Python修改labelme的Json文件

  • ​​前言​​
  • ​​前提条件​​
  • ​​相关介绍​​
  • ​​实验环境​​
  • ​​Python修改labelme的Json文件​​
  • ​​代码实现​​
  • ​​输出结果​​

前言

  • 本文是个人使用Python处理文件的电子笔记,由于水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入我的​​个人主页​​查看

前提条件

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • Python OS模块是负责程序与操作系统的交互,提供了访问操作系统底层的接口和非常丰富的方法用来处理文件和目录。

实验环境

  • Python 3.x (面向对象的高级语言)

Python修改labelme的Json文件

{
"version": "5.0.1",
"flags": {

},
"shapes": [
{
"label": "1",
"points": [
[
4713.666666666667,
2783.666666666667
],
[
6087.0,
3983.666666666667
]
],
"group_id": null,
"shape_type": "rectangle",
"flags": {

}
}
],
"imagePath": "1.bmp",
"imageData": null,
"imageHeight": 4000,
"imageWidth": 8320
}

代码实现

以修改"imagePath"的内容为例,代码如下。

import os
import json
def alter_json(in_json_path,out_json_path):
file_in = open(in_json_path, "r", encoding='utf-8')
# json.load数据到变量json_data
json_data = json.load(file_in)
# 修改json中的imageDatah数据内容为null
# json_data["imageData"] = None
# 修改json中的imagePath数据内容
json_data["imagePath"] = json_data['imagePath'][:-4] + '.jpg'
file_in.close()
# 创建一个写文件
file_out = open(out_json_path, "w", encoding='utf-8')
# 将修改后的数据写入文件
file_out.write(json.dumps(json_data))
file_out.close()

if __name__=="__main__":
in_json_path = './origin_json/1.json' # 原始json所在文件夹
out_json_path = './output_json/1.json' # 新json输出文件夹
alter_json(in_json_path,out_json_path)

输出结果

{
"version": "5.0.1",
"flags": {

},
"shapes": [
{
"label": "1",
"points": [
[
4713.666666666667,
2783.666666666667
],
[
6087.0,
3983.666666666667
]
],
"group_id": null,
"shape_type": "rectangle",
"flags": {

}
}
],
"imagePath": "1.jpg",
"imageData": null,
"imageHeight": 4000,
"imageWidth": 8320
}