2011-08-05 11 views
1

に輸出した辞書(配列)は、私はそうのような辞書の配列を持っている:のpython JSON

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

と私は、各辞書には独自のエントリであるJSONファイルにこの配列を輸出しようとしています。それは明らかである私のJSONパーサー(protovis)があるため、法的にJSONではありません、各エントリ

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

前に、番号のプレフィックスとJSONファイルを出力

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

:私が実行しようとすると問題があります私にエラーメッセージを与える

アイデア? ありがとう

+5

'ok'は有効なJSONではありません。 '' ok ''でなければなりません。それは誤字ではなく、誤字であることを確認してください。 –

+0

ありがとう、それはタイプミスでした – David

答えて

4

辞書の代わりにリストを使用してください。あなたは、おそらく使用:

あなたが使用する必要があります
myDict = {} 
myDict[0] = {...} 

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

P.S:それはとにかく私には有効なJSONようだが、それはオブジェクトではなくリストです。

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

です:多分これは、辞書の配列が良く、このような何かにシリアライズでしょう。また

、あなたのパーサは

+0

なぜ私はあなたがしたいと思うかわからないが、それは数字で辞書を(PythonとJSONの両方で)索引付けすることは完全に有効なはずです。 –

+0

もちろん、jsonにシリアライズすると、リストではなくオブジェクトが生成されます – GaretJax

+0

彼は何をしたいのか分からないでしょう。それは有効です。 –

0

あなたはJSONシリアライザを使用する必要があります不平を言っている理由は...ですJavaScript配列を使用するだけです。