下面是python3.12测试通过的代码,绝对好用
import re
import json
def remove_json_comments(json_data):
# 正则表达式去除C或C++风格的注释
# 支持单行注释(//)和多行注释(/**/)
json_data = re.sub(r'[^"//.*"]//.*', '', json_data, flags=re.MULTILINE) # 单行注释
json_data = re.sub(r'/\*.*?\*/', '', json_data, flags=re.DOTALL) # 多行注释
return json_data
# 假设有一个名为example.json的文件,内容如下:
# { //这是一个注释
# //sdfsdf
# /*"key1": "value1" // 这是一个注释
# "key1": "value1" // 这是一个注释*/
# "key": "value" // 这是一个注释
# }
# /** 这是一个多行注释 */
# // 这是另一个单行注释
# 读取JSON文件内容
with open('example.json', 'r', encoding='utf-8') as file:
json_data = file.read()
# 去除注释
clean_json_data = remove_json_comments(json_data)
# 打印处理后的字符串
print(clean_json_data)
# 如果需要,可以将处理后的字符串转换回JSON对象
print(json.dumps(json.loads(clean_json_data), indent=4))