import re
import json
def convert_to_json(file_path,save_path):
with open(file_path,'r')as f:
text=f.readlines()
first_key='"'+text[0].split('{')[0]+'"'
text[0]='{'
text2=text
for i,line in enumerate(text2):
line= re.sub('\s+', '', line)
#匹配key:value键值对
pattern=re.compile(r'[a-zA-Z0-9_]+:[-\s\[0-9"a-zA-Z][^\n]*')
if re.match(pattern,line):
li=line.split(':')
key='"'+li[0]+'"'
value='"'+li[1]+'"'
text[i]=key+":"+value+','
#匹配key{这种
elif re.match(r'[a-zA-Z0-9_]+[\s]*{',line):
text[i]='"'+line[:-1]+'"'+':'+'{'
else:
pass
res=' '.join(text)
#去除,}中的,
res=re.sub(r',[\s]*}','}',res)
#在}"中添加,
res=re.sub(r'}[\s]*"','},"',res)
#拼接第一个key
result='{'+first_key+':'+res+"}"
# result[fisrt_key]=res
js=json.loads(result)
with open(save_path, "w", encoding='utf-8') as f:
# indent 超级好用,格式化保存字典,默认为None,小于0为零个空格
f.write(json.dumps(js, indent=4))
print("保存成功!")
file_path='data.prototxt'
save_path='test.json'
convert_to_json(file_path,save_path)
将prototxt文件处理成json文件
于 2022-04-03 11:09:14 首次发布