2012-06-21 44 views
-1

我想產生一個JSON文件,其中包含一些初始參數,然後數據的記錄是這樣的:如何寫了大量的嵌套的記錄在JSON與Python

{ 
"measurement" : 15000, 
"imi" : 0.5, 
"times" : 30, 
"recalibrate" : false, 
{ 
    "colorlist" : [234, 431, 134] 
    "speclist" : [0.34, 0.42, 0.45, 0.34, 0.78] 
} 
{ 
    "colorlist" : [214, 451, 114] 
    "speclist" : [0.44, 0.32, 0.45, 0.37, 0.53] 
} 
... 
} 

這又如何使用來實現Python的json模塊?由於數據記錄非常多,因此無法手動添加數據記錄。

編輯:解決從@Aprillion的幫助。下面是生成的代碼作爲程序:

data=[] 
i=0 
while i<measurement: 
    data.append({"colorlist" : listcolorlist[i], "speclist" : listspeclist[i]}) 
    i+=1 
python_data = { 
    "measurement" : measurement, 
    "imi" : imi, 
    "times" : times, 
    "recalibrate" : recalibrate, 
    "data": data 
} 
print(json.dumps(python_data, indent=4)) 
+2

http://whathaveyoutried.com/ – Marcin

+0

閱讀json模塊文檔。 –

+0

@OP:除了向我們展示您所嘗試的內容外,請具體詢問。你想要什麼? – SuperSaiyan

回答

1

a)您使用無效的JSON格式在你的問題
B)exept Falsefalse蟒蛇數據格式將是完全一樣的JSON這個例子中

UPDATE:基於更新的問題代碼(使用list comprehension代替while循環):

import json 
measurement = 2 
listcolorlist = [[234, 431, 134], 
       [214, 451, 114]] 
listspeclist = [[0.34, 0.42, 0.45, 0.34, 0.78], 
       [0.44, 0.32, 0.45, 0.37, 0.53]] 
python_data = {"measurement" : 15000, 
       "imi" : 0.5, 
       "times" : 30, 
       "recalibrate" : False, 
       "data" : [{"colorlist" : listcolorlist[i], 
          "speclist" : listspeclist[i]} 
         for i in range(measurement)]} 
print(json.dumps(python_data)) 
+0

謝謝,這可以解決格式化問題,現在我只需要編寫for循環來重複從python列表中提取數組。 – jamesmcm

+0

好吧,如果你需要幫助,更新問題或發佈一個新的問題,包括你的原始數據,我沒有算命的水晶球你知道(否則,請接受答案,如果你發現你問什麼爲) – Aprillion

+0

是的,對不起,我在工作中忙碌。如果其他人有類似的問題,那麼確切的結果代碼如下所示: data = [] i = 0 while i jamesmcm

0
import json 
print json.dumps([ { 
    "measurement%d" % i : 15000, 
    "imi%d" % i : 0.5, 
    "times%d" % i : 30, 
    "recalibrate%d" % i : False, 
} for i in range(10) ])