我从数据库中获取值,我想将该值转换为字典。要按照以下方式完成取消
[dict((query.description[i][0], value) for i, value in enumerate(row)) for row in query.fetchall()]
我的输出为
[{'defrosting': 32.0, 'temperature': 42.0, 'timestamp': u'2017-04-25T11:30:15.207', 'hotwater': 3.0, 'humidity': 32.0, 'tds': 34.0, 'coldwater': 43.0}]
我想转换成这种格式
{'defrosting': 32.0, 'temperature': 42.0, 'timestamp': u'2017-04-25T11:30:15.207', 'hotwater': 3.0, 'humidity': 32.0, 'tds': 34.0, 'coldwater': 43.0}
答案 0 :(得分:2)
如果您只需要一个结果,任何不使用query.fetchone()
的理由,它就会避免获得所有结果并丢弃除第一个之外的所有结果:
{query.description[i][0]: value for i, value in enumerate(query.fetchone())}
答案 1 :(得分:0)
您正在为查询结果的每一行创建一个字典。它总是只有一个结果,或者你只对第一个结果感兴趣吗?然后选择第一个元素,正如Jean-FrançoisFabre在评论中所说:
[dict((query.description[i][0], value) for i, value in enumerate(row))
for row in query.fetchall()
][0]
这些行是否包含免费信息(在这种情况下不太可能)?然后从中制作一个字典:
dict(
(query.description[i][0], value)
for row in query.fetchall()
for i, value in enumerate(row)
)
我个人觉得字典理解比dict
构造函数更具可读性:
{
query.description[i][0]: value
for row in query.fetchall()
for i, value in enumerate(row)
}