用 Python 写一个把 JSON 转成 Markdown 表格的小工具

举报
yd_239248698 发表于 2026/11/09 19:59:15 2026/11/09
【摘要】 工作中经常要把一份 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。