美化打印JSON的Python代码

14 投票
1 回答
32745 浏览
提问于 2025-04-18 00:53

如果有谁对美化打印JSON有一些了解,能帮我一下,我会非常感激!

我想把一个复杂的Python字符串转换成JSON格式,下面的函数是用来把JSON字符串保存到文件里的:

with open('data.txt', 'wt') as out:
    pprint(string, stream=out)

问题是我觉得是方括号导致了语法错误,因为这是我第一次接触这个话题,我不知道该怎么解决。我要的JSON格式是这样的:

  {
        cols:[{id: 'Time', "label":"Time","type": "datetime"},
              {id: 'Time', "label":"Latency","type":"number"}],
        rows:[{c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}, 
              {c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}
              ]
    }

我在参考Google可视化API,你可能对它有点了解,但我需要动态图表。上面的代码是API创建图表所需的格式,所以我正在想办法把我的数据从MYSQL转换成这个格式,这样图表才能读取并显示。我想到的方法是定期更新一个包含所需JSON格式的文件,这就是为什么有%s的原因,不过MartijnPeters说这样做是不对的。

有没有人知道我可以用最简单的方法做到这一点,或者能给我推荐一些可以帮助我的资料吗?谢谢!!

1 个回答

48

你正在写的是 Python 表示,而不是 JSON。

可以使用 json.dump() 函数 来将格式美观的 JSON 直接写入你的文件:

with open('data.txt', 'wt') as out:
    res = json.dump(obj, out, sort_keys=True, indent=4, separators=(',', ': '))

撰写回答