Python中漂亮打印JSON

14

如果有任何对美化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 Visualization 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=(',', ': '))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接