用 Python 写一个把 JSON 转成 Markdown 表格的小工具
【摘要】 工作中经常要把一份 JSON 数据贴到文档或 README 里,直接贴原始 JSON 又长又难读。写一个 30 行左右的小工具,把 JSON 数组转成 Markdown 表格,复制粘贴就能用。 准备数据先准备一个示例文件 data.json,内容是一组字典组成的数组:[ {"name": "Alice", "age": 28, "city": "北京"}, {"name": "Bob",...
工作中经常要把一份 JSON 数据贴到文档或 README 里,直接贴原始 JSON 又长又难读。写一个 30 行左右的小工具,把 JSON 数组转成 Markdown 表格,复制粘贴就能用。
准备数据
先准备一个示例文件 data.json,内容是一组字典组成的数组:
[
{"name": "Alice", "age": 28, "city": "北京"},
{"name": "Bob", "age": 35, "city": "上海"},
{"name": "Carol", "age": 22, "city": "深圳"}
]
完整代码
只用标准库,不需要安装任何第三方包:
import json
def json_to_markdown(rows):
"""把字典列表转成 Markdown 表格字符串。"""
if not rows:
return ""
headers = list(rows[0].keys())
lines = ["| " + " | ".join(headers) + " |"]
lines.append("| " + " | ".join("---" for _ in headers) + " |")
for row in rows:
lines.append("| " + " | ".join(str(row.get(h, "")) for h in headers) + " |")
return "\n".join(lines)
def main():
with open("data.json", encoding="utf-8") as f:
rows = json.load(f)
print(json_to_markdown(rows))
if __name__ == "__main__":
main()
运行结果
在 data.json 所在目录运行:
python json2md.py
输出如下,复制到 Markdown 文档里就是一张表格:
| name | age | city |
|---|---|---|
| Alice | 28 | 北京 |
| Bob | 35 | 上海 |
| Carol | 22 | 深圳 |
几点说明
- 第一行用第一条记录的键作为表头,后面每条记录按同一顺序取值。
- 某个字段缺失时用 row.get(h, “”) 补空字符串,不会报错。
- 值先转成字符串再拼接,数字、布尔值都能正常显示。
- 想换输入文件时,把 open(“data.json”) 里的文件名改成自己的文件即可;也可以用 sys.argv 传文件名,感兴趣的读者可以自己扩展。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)