我的一个词典包含单个键的多个值。我曾经使用单值的简单字典。我是python的新手,无法弄清楚如何处理这个问题。我需要更新一个数据库表,其中“field”将是列,值将来自“行”,如下例所示。
“field”键将是列,“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']]
}
答案 0 :(得分:0)
您可以迭代值列表列表,即dictn['rows']
,并使用每个值列表以及列名列表,例如dictn['field']
,将所有记录保存到数据库。
for value_lst in dictn['rows']:
record_dict = dict(zip(dictn['field'], value_lst))
db_model.save(record_dict)
db_model.save()以
格式获取单个数据库记录的字典{
u'time': u'2016-01-00:00',
u'met1': None,
... so on for all the fields ...
}
并将其保存在数据库中。
答案 1 :(得分:0)
字典中的单个键只能引用单个值
在您给出的示例中,密钥u'field'
包含单个值,即元素列表,即
[u'time',u'met1',u'met2',u'met3',u'met4',u'met5',u'met6',u'met7']
因此,为了访问存储在键值u'field
中的列表,您应该使用
list_of_elements = dictn[u'field']
之后,您可以使用for循环遍历列表中的所有元素
for element in list_of_elements:
# do something
希望此链接可以帮助您