2014-04-01 200 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=(',', ': '))