参考: - https://stackoverflow.com/questions/54483184/sqlalchemy-warning-textual-column-expression-should-be-explicitly-declared
Textual SQL expression 'show tables ;' should be explicitly declared as text('show tables ;') - metadata = sqlalchemy.schema.MetaData(bind=engine)报错 get_bind() got an unexpected keyword argument 'bind'
# -*- coding: utf-8 -*-
import sqlalchemy
from sqlalchemy import orm
from sqlalchemy.sql import text
def get_session(url):
engine = sqlalchemy.create_engine(url)
Sess = orm.sessionmaker(bind=engine)
session = Sess()
return session
def exec_sqlstr(session, sqlstr):
res = session.execute(text(sqlstr))
rows = list()
for r in res:
#print("a")
row = dict()
for k in res.keys():
row[k] = getattr(r, k)
#print(row)
rows.append(row)
print(rows)
return rows
def main():
url = "" # 数据库的连接 mysql+pymysql://username:password@hostname:port/dbname?charset=utf8
session = get_session(url)
sqlstr = "select * from chatgpt_finance limit 1"
exec_sqlstr(session, sqlstr)
session.close()
if "__main__" == __name__:
main()