Python - 将 pyodbc 代码转换为 SQLAlchemy

Python - Convert pyodbc code to SQLAlchemy

我有用于连接到 DSN 的 pyodbc 代码,但是由于某种原因它不再工作,我无法弄清楚为什么(驱动程序是空的,即使它们在那里)。

所以我想尝试将所有内容转换为使用 SQLAlchemy。

我当前连接数据库的代码是:

conn = pyodbc.connect('DSN=QueryBuilder')
cursor = conn.cursor()
stringA = "SELECT GrantInformation.Call FROM GrantInformation"
cursor.execute(stringA)
rows = cursor.fetchall()

我如何才能在 SQLAlchemy 中执行相同的操作,我已经查看了文档,但我仍然感到困惑。

非常感谢


我用过:

from sqlalchemy import create_engine

engine = create_engine("""{}://{}:{}@{}/{}"""
                           .format(SQL Server,nick,mypassword,myservername,querybuilder))

df = pd.read_sql_query("SELECT GrantInformation.Call FROM GrantInformation")

我得到了:

File "<ipython-input-5-f7837462519f>", line 4
    .format(SQL Server,nick,mypassword,myservername,querybuilder))
                     ^
SyntaxError: invalid syntax

之前也声明了变量,现在得到:

ArgumentError: Could not parse rfc1738 URL from string 'SQL Server://nick:mypassword@myhost/querybuilder'
from sqlalchemy import create_engine

engine = create_engine("""{}://{}:{}@{}/{}"""
                           .format(driver,user,password,host,database))

df = pd.read_sql_query("SELECT GrantInformation.Call FROM GrantInformation", engine)

使用以下代码格式之一创建引擎

from sqlalchemy import create_engine

# default
engine = create_engine('mysql://scott:tiger@localhost/foo')

# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

# OurSQL
engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')

# query
connection = engine.connect()
result = connection.execute("select username from users")

数据库名=foo,用户名=scott,密码=tiger,主机=localhost

参考:http://docs.sqlalchemy.org/en/latest/dialects/mysql.html