由于json文件不支持注释,所以如果在json文件中标记了注释,则使用python中的json.dump()无法加载该json文件。
本文旨在解决当定义“//”为json注释时,如何正确解析有注释的json文件。
程序实现
# encoding: utf-8
import json
import re
import sys
reload(sys)
sys.setdefaultencoding('utf8')
CAUTION_PRINT_HEAD = 'caution: '
# 创建一个xstr类,用于处理从文件中读出的字符串
class xstr:
def __init__(self, instr):
self.instr = instr
# 删除“//”标志后的注释
def rmCmt(self):
qtCnt = cmtPos = slashPos = 0
rearLine = self.instr
# rearline: 前一个“//”之后的字符串,
# 双引号里的“//”不是注释标志,所以遇到这种情况,仍需继续查找后续的“//”
while rearLine.find('//') >= 0: # 查找“//”
slashPos = rearLine.find('//')
cmtPos += slashPos
# print 'slashPos