美化打印JSON的Python代码
如果有谁对美化打印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=(',', ': '))