迭代字典中单个键的多个值

时间:2016-01-07 12:48:30

标签: python python-2.7 dictionary

我的一个词典包含单个键的多个值。我曾经使用单值的简单字典。我是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']]
}

2 个答案:

答案 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

希望此链接可以帮助您

append multiple values for one key in Python dictionary