写了个脚本将json换成md
用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的更多相关文章
- influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB
influxdb influxdb是最新的一个时间序列数据库,最新一两年才产生,但已经拥有极高的人气.influxdb 是用Go写的,0.9版本的influxdb对于之前会有很大的改变,后端存储有Le ...
- [转帖]influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB
influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB ...
- 自己写的一个用js把select换成div与span与ul的东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 开启真机的View Server引入HierarchyViewer/By写monkeyrunner自动化测试脚本
其实相关文章网上也有不少了,不过在真机上开启View Server的中文文章好像只有一篇,前段时间按照这篇文章的内容,并结合英文源文去hack我的Nexus S(4.1.2)也走了一点弯路.现在总结一 ...
- 如何手动写一个Python脚本自动爬取Bilibili小视频
如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...
- python脚本解析json文件
python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...
- 转:js小技巧 ,将彻底屏蔽鼠标右键,可用于Table ,取消选取、防止复制,IE地址栏前换成自己的图标
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu= ...
- 用Python写一个游戏脚本,你会吗?
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ivat4u 学习python有一段时间了,由于python语言的强大 ...
- hexo next主题深度优化(五),评论系统换成gittalk
文章目录 背景: 开始: 新建comments_git.js 找到comments.swig在最后一个endif之前 引入代码 pjax加入gitalk 遇到的问题 所有的页面共享的一个评论issue ...
随机推荐
- 27.给input边框和背景颜色设置全透明
给input边框和背景颜色设置全透明,但是里面的字不会消失 1.让背景颜色变透明(二选一) background-color:rgba(0,0,0,0); background:rgba(0,0,0, ...
- Winform下如何上传图片并显示出来。同时保存到数据库
通常,我们在开发软件或者网站是否,通常有时候需要添加图片,我们怎么做呢,直接贴例子. 前提是添加openFileDialog控件哈 #region 定义公共的类对象及变量 SqlConn ...
- notepad怎么把空格替换成回车?
替换时选中“使用正则表达式”查找里输入\s替换里输入\r然后“全部替换”即可
- Sitecore CMS中更改项目的模板
如何在Sitecore CMS中创建项目后更改项目的模板. 在创建项目时选择了错误的模板,或者创建了新模板并将现有项目更新为新模板时,这非常有用. 警告! 更改模板时要小心.如果原始模板具有不在新 ...
- [openjudge-搜索]哆啦A梦的时光机
题目描述 描述 哆啦A梦有一个神奇的道具:时光机.坐着它,大雄和他的伙伴们能穿越时空,回到过去或者去到未来. 有一天,大雄和他的伙伴们想穿越时空进行探险,可是时光机却出了一点故障,只能进行有限的时空穿 ...
- 1.python虚拟环境的安装-用以同时使用py2,py3
第一步:安装环境支持[linux下在前加sudo] http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl pip install virtualenv 第 ...
- python 列表推导
废话不多说,直接上代码 #coding=utf-8 def getitem(index, element): return '%d: %s' % (index, element) def getite ...
- Njinx配置
参考地址: NGINX的百度百科:https://baike.baidu.com/item/nginx/3817705?fr=aladdin NGINX的中文网站:http://www.nginx.c ...
- Linux基础命令---文本显示tac
tac 将指定文件中的行,按照反序方式显示.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 tac [选项] ...
- golang学习笔记15 golang用strings.Split切割字符串
golang用strings.Split切割字符串 kv := strings.Split(authString, " ") if len(kv) != 2 || kv[0] != ...