sqlalchemy在使用原生sql查询时候,如何将结果以字典的形式返回?

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

回到顶部