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 配置文件不存在'
python脚本解析json文件的更多相关文章
- python脚本将json文件生成C语言结构体
1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...
- shell脚本解析json文件
安装jq扩展 下载:jq 根据自己系统下载对应的文件 cp jq-linux64 /usr/bin cd /usr/bin mv jq-linux64 jq chmod +x jq 使用方法 假设有个 ...
- 利用Python 脚本生成 .h5 文件 代码
利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...
- Android--------使用gson解析json文件
##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...
- JAVA简便解析json文件
JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...
- 使用google-gson类库解析json文件
使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...
- 安卓解析JSON文件
安卓解析JSON文件 根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔 以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:asset ...
- Java解析JSON文件的方法
http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...
- Logstash:解析 JSON 文件并导入到 Elasticsearch 中
转载自:https://elasticstack.blog.csdn.net/article/details/114383426 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON ...
随机推荐
- vuex使用一
至于为什么使用vuex在这里就不过多的解释了,直接进入正题 1.vuex的安装 cnpm install vuex -S 2.然后在main.js中引入 import Vue from 'vue' i ...
- maven的下载,安装配置以及build一个java web项目
一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...
- Oracle与MySQL的比较[内容来自网络]
支持的特性方面的比较: https://www.quora.com/Whats-the-difference-between-Oracle-and-MySQL oracle和mysql在 安全,数据类 ...
- gispro发布vectortile笔记
1.https://www.cnblogs.com/escage/p/6387529.html 矢量切片的作用.对于地图中的基础数据图层,或者数据量比较大的矢量图层,只是作渲染用.则需要制作矢量切片, ...
- Mockito/PowerMockito Straige Issues
http://blog.csdn.net/xiaoyaoyulinger/article/details/52415494 http://breezylee.iteye.com/blog/208843 ...
- mysql的指令
mysql有一下几方面的特性: 1:多语言支持 2:可以移植性好 3:免费开源 4:高效(支持多线程,充分利用cpu资源,运行速度非常) 5:支持大量数据查询和储存 6:操作简单易于学习 其实数据库就 ...
- 【Redis学习之四】Redis数据类型 string
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 一.redis客户端基础命令1.帮 ...
- python windows安装 SQLServer pymssql,
1.到正儿八经的网站下载文件,找到适合自己的版本 2.把文件放到一个地方,能让pip找到就行, 不放scripts下面的话, 恐怕会报错“FileNotFoundError" 3. 走到pi ...
- 利用可排序Key-Value DB构建时间序列数据库(简论)
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5855064. ...
- 【转】SQLyog SSH 密钥登陆认证提示: No supported authentication methods available 解决方法
问题背景: 问题原因: SQLyog不支持非标准的的私钥格式 解决方案: 使用puttyGen重新导入原来的私钥,然后重新保存成PPK证书文件,最后用SQLyog加载该PPK文件即可. 效果截图: 原 ...