python脚本解析json文件
python脚本解析json文件
没写完。但是有效果。初次尝试,写的比较不简洁。。。
比较烦的地方在于:
1,中文编码:
pSpecs.decode('raw_unicode_escape')
2,花括号转义:
{{
#!/usr/bin/python # -*- coding: UTF-8 -*- import os import json import sys reload(sys) sys.setdefaultencoding("utf-8") json_file = 'alink.json' #读文件 md_file = 'alink.md' #写文件 #写入模版 protocol_templete ='## {pName}\n### [Format]\n```json\n {{\n "{property}":\"\"\n }}\n```\n### [Parameters]\n* {property};{pType};属性说明.\n* specs:{pSpecs}\n\n\n' def writeServices(jsonObj): print(jsonObj) pName = jsonObj["name"]; # pType = jsonObj["type"]; def writeProperty( jsonObj ): pName = jsonObj["name"]; property = jsonObj["identifier"]; pType = jsonObj["dataType"]["type"] pSpecs = json.dumps(jsonObj["dataType"]["specs"]) print(pSpecs.decode('raw_unicode_escape')) //解决中文编码问题 # print(protocol_templete.format(pName="".join(pName),pType=pType,pSpecs=pSpecs,property="".join(property))) # writeFile(protocol_templete) writeFile(protocol_templete.format(pName="".join(pName),pType=pType,pSpecs=pSpecs.decode('raw_unicode_escape'),property="".join(property))) def writeEvent(jsonObj): print(jsonObj) #追加文件内容 def writeFile(str): with open(md_file, 'a+') as fo: fo.write(str) fo.close(); def handleJson(alinkDic): # print(str(alinkDic)) # services = alinkDic["services"]# print(services) for k in alinkDic.keys(): list = ["services","events","properties"] if(k in list) : writeFile("## %s\n"%k) values = alinkDic[k] #list if(k == "services"): map(writeServices,values) elif(k == "events"): map(writeEvent,values) else: map(writeProperty,values) if __name__ == '__main__': if os.path.exists(json_file): fileContent = open(json_file).read(); #清空文件 with open(md_file, 'wb+') as file: file.close(); jsonDic = json.loads(fileContent) # print(open(json_file).read()); //打印json文件 handleJson(jsonDic) # print(json.loads(''.join(open(json_file).readlines()))) //json对象转换成python对象 else: print 'json 配置文件不存在'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
2017-08-21 NetworkExtension