2011-08-05 134 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数组。