[英]Python SQLAlchemy not returning column names in results
非常基本的表,基本的查询。
我的表有这 5 列:
project_id, name, job, status, state
我希望查询与特定 project_id 相关的所有名称。
我收到一个元组作为结果集,只有字段值而不是字段名称。
RESULT: ('5', 'bob', 'worker', 'union', '123-456-7890', 'CA')
我将如何修改此查询以接收输出中的字段名称(即列标题)?
DESIRED: {project_id: '5', name:'bob', job:'worker', status:'union', state:'CA'}
from sqlalchemy import create_engine
def my_engine(db):
USERNAME = 'admin'
PASSWORD = 'password'
HOST = 'localhost'
DB_PORT = 1234
DATABASE = str(db)
return create_engine('mysql+pymysql://{0}:{1}@{2}:{3}/{4}'
.format(USERNAME, PASSWORD, HOST, DB_PORT, DATABASE), pool_pre_ping=True)
def query_mysql(self, table_name, col_title, srx_val):
myconn = my_engine('dbname')
return_list = myconn.execute("SELECT * FROM `{0}` WHERE `{1}` = '{2}'"
.format(table_name, col_title, srx_val)).fetchall()
return return_list
outdata = self.query_mysql('users', 'project_id', self.PROJ_NUM)
#returns: ('5', 'bob', 'worker', 'union', '123-456-7890', 'CA')
Lucas Lima 在这里提供了解决方案。
您将修改您的代码如下:
def query_mysql(self, table_name, col_title, srx_val):
myconn = my_engine('dbname')
resproxy = myconn.execute("SELECT * FROM `{0}` WHERE `{1}` = '{2}'"
.format(table_name, col_title, srx_val)).fetchall()
results = []
if len(data)==0: return results
for row_number, row in enumerate(resproxy):
results.append({})
for column_number, value in enumerate(row):
results[row_number][row.keys()[column_number]] = value
return results
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.