2014-04-01 63 views
10

如果有人对漂亮的打印JSON有一定的了解可以帮助我,我会非常感激!漂亮打印JSON python

我期待一个复杂的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}]} 
       ] 
    } 

我正在关注的谷歌可视化API,你可以用熟悉并且它,但我需要动态图形。上面的代码是API创建图形所需的格式,因此我正在确定如何从MYSQL中将数据转换为此格式,以便可以读取和显示图形。我想到的方法是定期更新包含所需JSON格式的文件,这就是%s存在的原因,但MartijnPeters认为这是无效的。

是否有人知道我能做到这一点的最简单方法,或者您能指出我可以提供哪些材料?谢谢!!

回答

41

您正在撰写Python代表,而不是JSON。

使用json.dump() function写漂亮打印JSON代替,直接到你的文件:

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