2011-08-05 167 views
1

我有字典的數組,像這樣:蟒蛇 - 出口字典(陣列),以JSON

myDict[0] = {'date':'today', 'status': 'ok'} 
myDict[1] = {'date':'yesterday', 'status': 'bad'} 

,我想這個數組導出到JSON文件,其中各詞典是其自身的條目。問題是,當我嘗試運行:

dump(myDict, open("test.json", "w")) 

它的每個條目

{"0": {"date": "today", "status": "ok"}, "1": {"date": "yesterday", "status": "bad"} } 

這顯然是不合法的JSON,因爲我的JSON解析器(protovis)是前輸出以數字前綴的JSON文件給我的錯誤信息

任何想法? 謝謝

+5

'ok'是無效的JSON。它應該是「好的」。確保這是一個錯字,而不是錯誤。 –

+0

謝謝,這是一個錯字 – David

回答

4

使用列表而不是字典;你可能習慣:

myDict = {} 
myDict[0] = {...} 

你應該使用:

myList = [] 
myList.append({...} 

P.S:這似乎反正有效的JSON我的,但它是一個對象,而不是列表;也許這就是爲什麼你的解析器抱怨

+0

雖然我不知道爲什麼你想要,但它應該是完全有效的索引一個字典(在Python和JSON)的數量。 –

+0

當然,但是當序列化爲json時,它產生一個對象,而不是一個列表 – GaretJax

+0

正確的,這可能不是他想要做的;但它是有效的。 –

0

您應該使用JSON序列化的原因...

而且,字典的數組會更好序列化到這樣的事情:那就是

[ 
    { 
     "date": "today", 
     "status": "ok" 
    }, 
    { 
     "date": "yesterday", 
     "status": "bad" 
    } 
] 

,你應該只使用一個JavaScript數組。