Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQL炼金术名称错误:名称<;表>;没有定义_Python_Sqlalchemy - Fatal编程技术网

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告诉您它没有定义的原因。