sqlalchemy在使用原生sql查询时候,如何将结果以字典的形式返回?
用原生sql查询返回的是元祖结果,期望是以key:value的方式,将字段名,值返回,
sqlalchemy用其封装的方法如query执行查询,可以通过重写其declarative_base()实现该功能,但认为其封装方法在执行复杂查询的情况下写起来不如sql简单,顾提此问,期待大佬回答
回答:
sqlalchemy是一个orm框架,纯sql查询和sqlalchemy并没有任何关系
以MySQLdb库为例,你可以参考一下
class Db: def __init__(self):
self.connection = {
'db': 'db',
'user': 'user',
'passwd': 'passwd',
'host': 'localhost',
'port': 3306
}
self.conn = MySQLdb.connect(**self.connection)
def query(self, sql):
try:
with self.conn.cursor() as cursor:
cursor.execute(sql)
columns = [_[0].lower() for _ in cursor.description]
rows = [dict(zip(columns, _)) for _ in cursor]
return rows
except Exception as e:
raise e
finally:
self.conn.close()
回答:
你们如果可以改源码的话,可以尝试重写下这个方法
https://github.com/sqlalchemy...
def __repr__(self): return repr(dict(self))
回答:
for fi_result in result: print fi_result._asdict()
回答:
请问题主,这个问题你是怎么解决掉的呢?
以上是 sqlalchemy在使用原生sql查询时候,如何将结果以字典的形式返回? 的全部内容, 来源链接: utcz.com/a/161610.html