我有這樣的輸入作爲一個配置文件複製相同的數據和在密鑰創建嵌套字典,按照不同的值
a = 1
b = 2
c = 3
dat = 4,5
我試圖創建嵌套字典(D1 {})在格式從上面輸入如下:
{
"0": {
"a ": "1",
"b ": "2",
"c": "3",
"dat": "4"
},
"1": {
"a ": "1",
"b ": "2",
"c": "3",
"dat": "5"
}
}
下面是Python代碼我使用,
import json
data_file = "Dataset" # as above input data from a file
d = {}
d1 = {}
with open(data_file) as f:
for line in f:
(key, val) = line.strip().split('=')
d[key] = val
l1 = d['dat']
z = l1.strip(' ').split(',')
d.pop('dat')
d1['0'] = d
d1['1'] = d
d1['0']['dat']= z[0]
d1['1']['dat']= z[1]
print d1
這是輸出/結果我和下面的,而不是什麼,我上面
{
"0": {
"a ": "1",
"b ": "2",
"c": "3",
"dat": "5"
},
"1": {
"a ": "1",
"b ": "2",
"c": "3",
"dat": "5"
}
}
期待給出正如你可以在上面看到我不能存儲不同的值「得到數據集'的'dat'鍵0 &嵌套字典的1,並且即使在分配不同的列表索引z [0] & z [1]之後,它似乎也是相同的。 有人可以讓我知道我在上面的代碼中做了什麼錯誤,所以這兩個數據集中的值更新是不同的。
在線D1'[ '0'] = d 和d1 [ '1'] = D' 您是從字面上保存在兩個相同的值。 –
@code_byter:是的,這就是我想用相同的數據集創建嵌套字典,請參閱上面我的預期輸出。也讓我知道是否有更好的方法來做到這一點! –
@shivrk你不明白@ code_byter的回答。如果您更改了'd1 ['0'] ['dat',那麼'd1 ['0']'和'd1 ['1']'不是**完全相同**字典, ]'就像你改變'd1 ['1'] ['dat']'一樣。 –