用python 脚本将protocol.json中的json按照templete.md模版生成,结果在protocol.md中

Python:

#!/usr/bin/python
# -*- coding: UTF-8 -*- import json
import sys
import os reload(sys)
sys.setdefaultencoding("utf-8") CONFIG_FILE = 'protocol.json'
MD_FILE = 'protocol.md'
TEMPLATE_FILE = 'templete.md' TEMPLATE_STR_ON = ' on:integer, 1、{classNameCN}开;0、{classNameCN}关。可缺省。' def writeDoc(item):
for k in item.keys():
classname_cn = '' #去除name
if 'name' in json.dumps(item[k]):
classname_cn = item[k]['name']
del item[k]['name']
values = json.dumps(item[k]); with open(TEMPLATE_FILE,'rw+') as template_file:
templateContent = template_file.readlines()
resultFile = open(MD_FILE,'a+');
print(templateContent);
for i in templateContent:
if '{classNameCN}' in i:
i = i.replace('{classNameCN}',classname_cn)
if '{className}' in i:
i = i.replace('{className}',k)
if '{classValue}' in i:
i = i.replace('{classValue}',values)
if '{property}' in i:
i = i.replace('{property}',writeSummary(item[k],classname_cn)) #写说明
resultFile.write(i)
resultFile.close()
template_file.close(); def writeSummary(parm,classname_cn=''):
result_str = ''
for k in parm.keys():
if(k == 'on'):
templete_str = TEMPLATE_STR_ON.replace('{classNameCN}',classname_cn)
result_str = result_str+templete_str
else:
temp_str = "\n * " + k+":"+type(parm[k]).__name__
result_str = result_str + temp_str return result_str if __name__ == '__main__':
if os.path.exists(CONFIG_FILE):
fileContent = open(CONFIG_FILE).read()
# 清空文件
with open(MD_FILE, 'wb+') as file:
file.close();
jsonDic = json.loads(fileContent)
writeDoc(jsonDic)
else:
print ('json 配置文件不存在')
protocol.json
{
"Remind": {
"name":"提醒",
"on":1,
"pd":30
}
}
templete.md
## {className}
## 获取{classNameCN}的相关信息
### [Name]
get{className}
### [Request]
```json
{
"body":{}
}
```
### [Response]
```json
{
"body":{
"code":0,
"msg":"ok",
"data":{classValue}
}
}
``` ## 设置{classNameCN}相关信息
### [Name]
set{className}
### [Request]
```json
{
"body":{
"data":{classValue}
}
}
``` ### [Response]
```json
{
"body":{
"code":0,
"msg":"ok",
}
}
```
## report{classNameCN}信息变化
### [Name]
on{className}
### [Report]
```json
{
"body":{
"data":{classValue}
}
}
```
### [Parameters]
* {className} 结构说明:
* {property}
* 具体的json schema 可参考:<br/>
http://rcp-schema.ecouser.net/Data/Config/{className}.json

写了个脚本将json换成md的更多相关文章

  1. influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB

    influxdb influxdb是最新的一个时间序列数据库,最新一两年才产生,但已经拥有极高的人气.influxdb 是用Go写的,0.9版本的influxdb对于之前会有很大的改变,后端存储有Le ...

  2. [转帖]influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB

    influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB ...

  3. 自己写的一个用js把select换成div与span与ul的东西

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 开启真机的View Server引入HierarchyViewer/By写monkeyrunner自动化测试脚本

    其实相关文章网上也有不少了,不过在真机上开启View Server的中文文章好像只有一篇,前段时间按照这篇文章的内容,并结合英文源文去hack我的Nexus S(4.1.2)也走了一点弯路.现在总结一 ...

  5. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  6. python脚本解析json文件

    python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...

  7. 转:js小技巧 ,将彻底屏蔽鼠标右键,可用于Table ,取消选取、防止复制,IE地址栏前换成自己的图标

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu= ...

  8. 用Python写一个游戏脚本,你会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ivat4u  学习python有一段时间了,由于python语言的强大 ...

  9. hexo next主题深度优化(五),评论系统换成gittalk

    文章目录 背景: 开始: 新建comments_git.js 找到comments.swig在最后一个endif之前 引入代码 pjax加入gitalk 遇到的问题 所有的页面共享的一个评论issue ...

随机推荐

  1. unity3d-游戏实战突出重围,整合游戏

    结构图: 两个场景,一个是开始界面.一个是游戏界面: 脚本说明:依次是:敌人脚本,主角游戏,主菜单,工具 Enemy using UnityEngine; using System.Collectio ...

  2. 笔记 : WampServe加装PHP版本(7.2.3)为例

    1.由于正在学习Laravel框架,服务器wamp,Composer已搭建完成,但在安装laravel installer之后使用laravel new blog,报错为"This pack ...

  3. Android Studio -- 关联源码

    1,昨天刚把SDK升级到25,然后准备开始 新的一年码代码,结果发现查看源码的时候出现了一堆的“ throw new RuntimeException("Stub!");” 网上搜 ...

  4. 18. 4Sum(双指针)

    Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...

  5. keras可视化pydot graphviz问题

    Keras中提供了一个神经网络可视化的函数plot,并可以将可视化结果保存在本地.plot使用方法如下: from keras.utils.visualize_util import plot plo ...

  6. 凯撒密码、GDP格式化输出、99乘法表

    1.恺撒密码的编码 s=input('明文:') print('密文:',end='') for i in s: print(chr(ord(i)+3),end='') 附加: print('字符串的 ...

  7. mybatis源码解析1--前言

    在开始分析mybatis源码之前,需要定一个目标,也就是我们不是为了读源码而去读,一定是带着问题去读,在读的时候去寻找到答案,然后再读码的同时整理总结,学习一些高级的编码方式和技巧. 首先我们知道my ...

  8. flask 对URL进行安全验证

    对URL进行安全验证 虽然我们已经实现了重定向会上一个页面的功能,但是安全问题不容忽视,鉴于referer和next容易被串篡改的特性,我们需要对这些值进行验证,否则会形成开放重定向漏洞   以URL ...

  9. 普通程序员转型AI免费教程整合,零基础也可自学

    普通程序员转型AI免费教程整合,零基础也可自学 本文告诉通过什么样的顺序进行学习以及在哪儿可以找到他们.可以通过自学的方式掌握机器学习科学家的基础技能,并在论文.工作甚至日常生活中快速应用. 可以先看 ...

  10. [转载]css代码优化的12个技巧

    1.ID 规则2.Class 规则3.标签规则4.通用规则对效率的普遍认识是从Steve Souders在2009年出版的<高性能网站建设进阶指南>开始,虽然该书中罗列的更加详细,但你也可 ...