【发布时间】:2017-09-14 21:47:44
【问题描述】:
我正在使用 Python3,我目前正在尝试重构一些代码,特别是这看起来有点草率。现在我有一个标准的循环遍历元组列表并将它们与硬编码键配对。
values = [
(1, 'test1', 15.5),
(2, 'test2', 31.67),
(3, 'item1', 16.5),
(4, 'bike1', 15.5),
]
keys = ['id', 'name', 'price']
items = []
for row in values:
items.append({'id': row[0], 'name': row[1], 'price': row[2]})
return items
这是一篇类似的文章 More efficient way to create JSON from Python
但是我很难弄清楚如何处理我的两组数据完全不同的事实
items = [row for row in result]
columns = [key[0] for key in cursor.description]
print([{key: val} for key, val in zip(columns, items)] )
我想出了这个,理论上可以浓缩成一行。但由于我的数据不是 1 对 1(即一个列表与一个元组列表),它给了我这个......
[{'id': (1, 'bike2', 15.5)}, {'name': (2, 'test', 31.67)}, {'price': (3, 'bike3', 15.5)}]
UPDATE
这是我的最终解决方案,感谢 Martijn!
items = [dict(zip([key for key in keys], row)) for row in result]
【问题讨论】: