【python实用小脚本-160】Python Json转Markdown:把乱麻般的配置秒变清爽文档——再也不用手敲格式
Python Json转Markdown:把乱麻般的配置秒变清爽文档——再也不用手敲格式
关键词:json转markdown、自动生成文档、脚本工具、数据可视化、零配置
故事开场:瑞士军刀救了我周五的晚上
周五 18:00,你正准备关机,老板甩来一个 200 行的 config.json:“下班前把这份配置整理成文档发我。”
你打开文件,瞬间眼花:嵌套的对象、数组、布尔值混成一团。手敲 Markdown?估计得加班到半夜。
这时,你把今天刚拿到的小脚本 script.py 往命令行一扔——
python script.py -i config.json -o config.md
3 秒后,config.md 静静躺在桌面:标题、缩进、代码块全排好,老板直夸“专业”。
这把“瑞士军刀”从此常驻你的工具箱。
代码解析 1:读文件——先把 JSON 变成 Python 能懂的话
通俗解释
就像把一封英文信先翻译成中文再读,这一步让 Python 能“听懂” JSON 的内容。
关键代码
def load_json(file):
try:
with open(file, 'r') as f:
data = f.read()
return json.loads(data) # 把 JSON 字符串变成 Python 字典或列表
except:
print("[ERROR] 文件必须是合法的 json")
代码解析 2:拆积木——递归拆解每一层
通俗解释
JSON 像俄罗斯套娃,大盒子里还有小盒子。脚本一层层拆开,遇到盒子(对象/数组)就继续拆,遇到糖果(字符串/数字)就贴标签。
关键代码
def parse_json(json_block, depth, options):
if isinstance(json_block, dict):
parse_dict(json_block, depth, options)
if isinstance(json_block, list):
parse_list(json_block, depth, options)
代码解析 3:贴标签——把键值对变成 Markdown
通俗解释
拆到最后,给每个“糖果”写上名字和味道:age: 18。脚本自动在前面加 - 和反引号,让 Markdown 格式一步到位。
关键代码
def add_value(key, value, depth):
chain = tab * (bool(depth - 1)) + list_tag + \
str(key) + ": " + inline_code + str(value) + inline_code + "\n"
global markdown
markdown += chain
代码解析 4:写文件——把结果存成 .md
通俗解释
就像把整理好的笔记放进文件夹,这一步把生成的 Markdown 字符串一次性写进指定文件,完事收工。
关键代码
def write_out(markdown, output_file):
with open(output_file, 'w+') as f:
f.write(markdown)
如果还想更厉害:两个 5 分钟扩展点子
1. 批量处理整个文件夹
给脚本加一个 -b 参数,让它一次吃下一整碗 JSON。
# 在 main() 里加几行
import glob
if args.batch:
for json_path in glob.glob('*.json'):
convert(json_path, json_path[:-4] + 'md', options)
2. 30 秒套个图形界面
用 tkinter 做一个小窗口,拖文件就能转。
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw() # 只弹出文件选择框
input_path = filedialog.askopenfilename(title="选 JSON")
convert(input_path, input_path[:-4] + 'md', {'ignore': '', 'keep': ''})
总结
你刚体验了一把“零门槛”自动化:把任何 JSON 文件扔给脚本,3 秒就能收获排版漂亮的 Markdown。它不需要安装额外库,只用系统自带 Python;加上两条简单扩展,还能批量、还能点点鼠标。下次再有人甩来配置,你就笑眯眯地双击脚本——下班前就能回家追番。
源码获取
完整代码已开源,包含详细的注释文档:
🔗 [GitCode仓库] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [备用下载] https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG
更多推荐
所有评论(0)