sqlalchemy 执行 sql 语句

创建日期: 2023-06-01 15:22 | 作者: 风波 | 浏览次数: 16 | 分类: SQLAlchemy

参考: - 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()
16 浏览
15 爬虫
0 评论