写了个脚本将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

 

转载于:https://www.cnblogs.com/developer-qin/p/9604420.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值