Попытка ввести вложенный словарь, но результаты показывают вложенное значение с последней записью.Я думаю, это потому, что я пытаюсь добавить вложенный ключ с одинаковым для всех:
for i in range(15, 19, 1):
left_index = counters[i].find(']')
right_index = counters[i].rfind(': ')
key = counters[i][left_index + 1:right_index]
value = counters[i][right_index + 1:].replace('[(','').replace(')]','').replace(') - (',' ').strip().split(' ')
d1['value'] = value[0]
d1['minimum'] = value[1]
d1['maximum'] = value[-1]
print 'key: ',key, 'value: ', d1
d[key] = d1
encoder.FLOAT_REPR = lambda x: format(x, '.5f')
print json.dumps(d, indent=5, sort_keys=True)
И результат:
key: Socket/Modem 1/Bytes sent value: {'minimum': '0', 'maximum': '2482262614', 'value': '2482262614'}
key: Socket/Modem 1/recv value: {'minimum': '0', 'maximum': '19646', 'value': '19646'}
key: Socket/Modem 1/send value: {'minimum': '0', 'maximum': '2078818', 'value': '2078818'}
key: StreamerEngine/Bonding/Priority queue/Packets of '' priority dequeued value: {'minimum': '0', 'maximum': '0', 'value': '0'}
{
" Socket/Modem 1/Bytes sent": {
"maximum": "0",
"minimum": "0",
"value": "0"
},
" Socket/Modem 1/recv": {
"maximum": "0",
"minimum": "0",
"value": "0"
},
" Socket/Modem 1/send": {
"maximum": "0",
"minimum": "0",
"value": "0"
},
" StreamerEngine/Bonding/Priority queue/Packets of '' priority dequeued": {
"maximum": "0",
"minimum": "0",
"value": "0"
}
}
Таким образом, вы можете видеть, чтоd1
словарь набран хорошо, но накопленный словарь d
нет.