在Python 3.7中将字典追加到列表中
问题 我有一个从MySQL数据库中获取数据的列表。使用炼金术在Python 3.7中将字典追加到列表中,python,list,dictionary,flask-sqlalchemy,Python,List,Dictionary,Flask Sqlalchemy,问题 我有一个从MySQL数据库中获取数据的列表。使用炼金术 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]) v
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)
该代码的结果是:
[3198,3198,3198,3198,3198,3198,3198,…]
我想要的是一个字典列表,将这些键映射到每个列表,即'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,一种方法是:
代码:
测试代码:
结果:
我假设您的查询根据引用行的方式返回列表列表 这会给你你想要的
dictionary = [dict(zip(keys, values)) for values in selectAA1]
您可以尝试使用内置的
\u asdict
方法将结果作为Dict。
参考:
示例代码:
for row in selectAA1:
print(row._asdict())
[dict(zip(key,values))获取selectAA1中的值]
作为新手,使用官方发布的Python版本可能是个好主意。Python3.7是测试版,在6月之前不会发布。但是,这将指定3
作为密钥。我想要的是将3198
映射到x和y,结果是[{x:3,y:198}]什么?此输出完全符合您的问题所说的结果。您不必手动执行此操作,您可以使用内置方法\u asdict()
@n33rma这是3.7方法还是在旧方法中也可用?@Usernamenotfound它不依赖于Python版本,即来自SQLAlchemy的版本,请查看我的答案以获取参考链接。
[{3: 198}, {3: 198}, {3: 198}, {3: 198}, {3: 198}]
dictionary = [dict(zip(keys, values)) for values in selectAA1]
for row in selectAA1:
print(row._asdict())