Один из моих словарей содержит несколько значений для одного ключа. Я работал над простым словарем с одним значением. Я новичок в python, не в состоянии понять, как справиться с этим. Мне нужно обновить таблицу базы данных, где «поле» будет столбцом, а значения будут из «строк», как в приведенном ниже примере.Итерация по нескольким значениям для одной клавиши в словаре
«поле» будет столбцом, а ключ «rows» будет значением в таблице базы данных для соответствующих столбцов.
dictn = {
u'field': [u'time',
u'met1',
u'met2',
u'met3',
u'met4',
u'met5',
u'met6',
u'met7'],
u'set': 0,
u'messages': [{u'text': u'string',
u'type': u'INFO'}],
u'rows': [[u'2016-01-00:00',
None,
u'0.24',
None,
u'0.24',
None,
u'0.16',
u'60'],
[u'2016-01-00:01:00:00',
None,
u'0.00',
None,
u'0.00',
None,
u'0.003500',
u'60'],
[u'2016-01-00:02:00.00',
None,
u'0.64',
None,
u'0.64',
None,
u'0.26',
u'60']]
}
это не будет повторять для всех значений ,, я вижу он перебирает только один раз с именем столбца и значением – D14
Первый 'for value_lst в dictn ['rows']' будет итерировать для всех наборов значений не только один. Второй 'dict (zip (dictn ['field'], value_lst))' принимает список имен столбцов, т.е. 'dictn ['field']' и (single record) список значений, т.е. 'value_lst', и возвращает словарь формата Я упомянул позже в своем ответе. И затем на каждой итерации запись 'record_dict' будет новой для каждой записи в dictn ['rows']' и будет передана методу i.e.db_model.save (record_dict) ', который сохранит его в базе данных. –