问题
我有一个从MySQL数据库中提取数据的列表。使用SQLAlchemy
selectAA1 = conn.execute('
SELECT YIELD_EXPECTED_QTY as x, YIELD_ACTUAL_QTY as y
FROM obj2mart')
我的成就是什么
keys = ["x", "y"]
values = []
for row in selectAA1:
values.append(row[0])
values.append(row[1])
print (values)
此代码的结果是:
[3, 198, 3, 198, 3, 198, 3, 198, 3, 198, ...]
我想要的是有一个字典列表,将这些键映射到每个列表,即'x'
和'y'
结果应该是词典列表:
[{ x: 3, y: 198 }, { x: 3, y: 198}, { x: 3, y: 198} , ...]
我做了什么
dictionary = {}
dictionary = dict(zip(keys, values))
print (dictionary)
但是,此代码只返回一个:
{ 'x': 3, 'y': 198 }
我是python中的新手。有人能帮助我吗?
注意:我使用的是Python 3.7
答案 0 :(得分:1)
我假设您的查询根据您引用行的方式返回列表列表。
这可以给你你想要的东西
dictionary = [dict(zip(keys, values)) for values in selectAA1]
答案 1 :(得分:1)
答案 2 :(得分:0)
一种方法是:
def to_list_dict(data_elements):
data = iter(data_elements)
return [{d: next(data)} for d in data]
data = [3, 198, 3, 198, 3, 198, 3, 198, 3, 198]
print(to_list_dict(data))
[{3: 198}, {3: 198}, {3: 198}, {3: 198}, {3: 198}]