Python SQL炼金术名称错误:名称<;表>;没有定义
我不知道该怎么称呼这个,请随意编辑我的帖子标题 在我开始之前,我在谷歌上搜索了一下,但这似乎对我没有帮助 我的代码:Python SQL炼金术名称错误:名称<;表>;没有定义,python,sqlalchemy,Python,Sqlalchemy,我不知道该怎么称呼这个,请随意编辑我的帖子标题 在我开始之前,我在谷歌上搜索了一下,但这似乎对我没有帮助 我的代码: import pyodbc import pandas as pd import numpy as np import os import sqlalchemy as sal from sqlalchemy import create_engine from sqlalchemy import MetaData from sqlalchemy import Table, Colu
import pyodbc
import pandas as pd
import numpy as np
import os
import sqlalchemy as sal
from sqlalchemy import create_engine
from sqlalchemy import MetaData
from sqlalchemy import Table, Column, Integer, Numeric, String, ForeignKey, Boolean
##
from datetime import datetime
from sqlalchemy import DateTime
from sqlalchemy import PrimaryKeyConstraint, UniqueConstraint, CheckConstraint
from sqlalchemy import Index
from sqlalchemy import ForeignKeyConstraint
from sqlalchemy import insert
from sqlalchemy.sql import select
from sqlalchemy.sql import func
from sqlalchemy import cast
from sqlalchemy import and_, or_, not_
from sqlalchemy import update, delete
from sqlalchemy import text
##
import urllib
#############################################################
server = 'fake_server'
database = '_Testing_Only'
driver = 'SQL+SERVER+NATIVE+CLIENT+11.0'
trusted_connection='yes'
database_connection = 'mssql+pyodbc://fake_server/' + database + '?trusted_connection=' + trusted_connection + '&driver=' + driver
engine = sal.create_engine(database_connection)
connection=engine.connect()
metadata = MetaData()
print(engine.table_names())
以下是我打印报表的结果:
['cookies', 'line_items', 'orders', 'testing_sym_keys', 'users']
然后我尝试运行以下代码:
s = select([cookies])
我收到以下错误消息:
Traceback (most recent call last):
File "<pyshell#167>", line 1, in <module>
s = select([cookies])
NameError: name 'cookies' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
s=选择([cookies])
NameError:未定义名称“cookies”
表显然存在,为什么我会收到错误消息?问题在于您没有将引擎变量中的表绑定到Python代码中的变量 正在尝试运行以下表单的本机SQL查询:
engine = create_engine(database_connection)
metadata = MetaData(engine)
metadata.reflect()
with engine.begin() as conn:
conn.execute("select * from cookies")
其他解决方案,如果要使用选择方法,可以尝试以下方法:
engine = create_engine(database_connection)
meta = MetaData(engine).reflect()
table = meta.tables['cookies']
# select * from 'cookies'
select_cookies = select([table])
选择(['cookies'])应该可以工作。您没有一个名为cookies的变量,这就是Python告诉您它没有定义的原因。