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文件的更多相关文章

  1. python脚本将json文件生成C语言结构体

    1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...

  2. shell脚本解析json文件

    安装jq扩展 下载:jq 根据自己系统下载对应的文件 cp jq-linux64 /usr/bin cd /usr/bin mv jq-linux64 jq chmod +x jq 使用方法 假设有个 ...

  3. 利用Python 脚本生成 .h5 文件 代码

    利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...

  4. Android--------使用gson解析json文件

    ##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...

  5. JAVA简便解析json文件

    JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...

  6. 使用google-gson类库解析json文件

    使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...

  7. 安卓解析JSON文件

    安卓解析JSON文件 根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔 以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:asset ...

  8. Java解析JSON文件的方法

    http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...

  9. Logstash:解析 JSON 文件并导入到 Elasticsearch 中

    转载自:https://elasticstack.blog.csdn.net/article/details/114383426 在今天的文章中,我们将详述如何使用 Logstash 来解析 JSON ...

随机推荐

  1. 字符串转化为int数组

    String a = "1,2,3,4,5,6" String str[] = a.split(","); int array[] = new int[str. ...

  2. Oracle创建禁止DDL的触发器

    create or replace trigger forbid_ddl       before ddl on DATABASEbegin  --if ora_dict_obj_owner = or ...

  3. C# WPF Halcon HDevEngine混合编程

    1. WPF+Halcon 引用halcondotnet.dll和hdevenginedotnet.dll XAML中导入命名空间xmlns:halcon=”clr-namespace:HalconD ...

  4. [protocol]GO enrichment analysis

    [protocol]GO enrichment analysis     背景: 什么是富集分析,自己可以百度.我到目前也没发现一个比较通俗易懂的介绍.直接理解为一种统计学方法就可以了. 用于查看显著 ...

  5. pcb走线注意事项笔记

    一.高压隔离. PCB的安全距离: 1.电气间隙或者叫做控件距离. (两相邻的后者一个到相邻电机壳表面的沿空气测量的最短距离,电气间隙的决定,根据测量的工作电压以及绝缘等级就可以决定距离.) a.一次 ...

  6. 转:C# 小数位数保留的方法集锦

    转载自:http://www.jb51.net/article/17010.htm 1. System.Globalization.NumberFormatInfo provider = new Sy ...

  7. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    elasticsearch启动时遇到的错误 问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144: 解决: 切换到root用户 执行命令: sysctl -w vm ...

  8. js中的children实时获取子元素

    先看下面一个小例子的结果 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  9. websocket 群聊单聊

    websocket 介绍 介绍引自 https://segmentfault.com/a/1190000012709475 群聊 from flask import Flask, request, r ...

  10. hdu 1466 计算直线的交点数 递推

    题目描述 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数. 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 输入 输入数据包含多个测试实例,每个测试实例占一行,每行包 ...