2017-04-24 155 views
1

我正嘗試在python中使用字典創建一個json對象。據我所知,關鍵部分需要是唯一的,但在我的情況下,該數組有多個項目具有相同的密鑰,所以看起來像字典在這裏不適合我。試圖瞭解我的選擇嗎?最後,我將把這個json對象保存到服務器上的json文件中。python中具有相同鍵的字典

data = {} 
data['key1'] = hostname 

for line in pipe.stdout: 
    parts = line.split() # split line into parts 
    if len(parts) > 1: # if at least 2 parts/columns 
     data['package'] = { 'name': parts[0], 'installed': parts[1], 'available': parts[2]} 

print(json.dumps(data, indent=4)) 

預期JSON輸出

{ 

"key1": "xyz-abc-m001", 
"package": [ 
    { "name":"abc", "installed":"1:1", "available":"1:1.2." }, 
    { "name":"xyz", "installed":"2.02", "available":"2.02" }, 
    { "name":"zyc", "installed":"1.17.1", "available":"1.17.1" } 

] 

} 
+0

你想作爲一個輸出什麼?你可以創建一個包含列表的字典。 –

+1

這些是每個詞典具有唯一鍵的多個詞典。 – Afaq

+0

我不認爲我可以用作列表,因爲我的數組是以key:value對的形式對吧?我期望的輸出是我在我的問題中提到的json。 –

回答

1
data = {} 
data['key1'] = hostname 
data['package'] = [] 

for line in pipe.stdout: 
    parts = line.split() # split line into parts 
    if len(parts) > 1: # if at least 2 parts/columns 
     data['package'].append({ 'name': parts[0], 'installed': parts[1], 'available': parts[2]}) 
相關問題