Python Sqlalchemy-自动实例化所有表

Python Sqlalchemy-自动实例化所有表,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,这里是一个简单的sqlalchemy任务,我尝试创建数据库中每个表的实例: from sqlalchemy import MetaData, create_engine, Table engine = create_engine("here my engine details...") metadata = MetaData() 如果我键入engine.table_名称,我可以看到所有表的名称,例如['indicators'、'prices'、'scripts'] 我通常会按照如下方式创建每个

这里是一个简单的sqlalchemy任务,我尝试创建数据库中每个表的实例:

from sqlalchemy import MetaData, create_engine, Table
engine = create_engine("here my engine details...")
metadata = MetaData()
如果我键入engine.table_名称,我可以看到所有表的名称,例如['indicators'、'prices'、'scripts']

我通常会按照如下方式创建每个实例:

scripts = Table('scripts', metadata, autoload = True, autoload_with=engine)
indicators = Table('indicators', metadata, autoload = True, autoload_with=engine)
prices = Table('prices', metadata, autoload = True, autoload_with=engine)
但是,有没有一种方法可以创建表实例而不显式地对它们进行编码

这样做:

tables = engine.table_names()
for table in tables:
    table = Table( table , metadata, autoload = True, autoload_with=engine)
显然不行。
任何建议都值得赞赏

你可以这样做。此代码将为您提供一个表列表:

my_tables = [Table(table,metadata,autoload=True,autoload_with=engine) for 
             table in engine.table_names()]
如果您喜欢字典,请执行以下操作:

my_tables = {table:Table(table,metadata,autoload=True,autoload_with=engine) 
             for table in engine.table_names()}
使用字典,您可以在访问字典元素时获得大量表:

my_tables['indicators']

你可以这么做。此代码将为您提供一个表列表:

my_tables = [Table(table,metadata,autoload=True,autoload_with=engine) for 
             table in engine.table_names()]
如果您喜欢字典,请执行以下操作:

my_tables = {table:Table(table,metadata,autoload=True,autoload_with=engine) 
             for table in engine.table_names()}
使用字典,您可以在访问字典元素时获得大量表:

my_tables['indicators']

等等,为什么不起作用?我刚刚试过,它似乎工作得很好。有一个这样的表列表怎么样:_tables=[Tabletable,metadata,autoload=True,autoload_with=engine for engine in engine.table_names]@bernie我会这么说,因为table是一个字符串,不能同时用作变量名和最后一行中的实际字符串?TBH我也有点困惑…啊,我知道你在哪里被绊倒了。您可以有一个表列表。请看我的答案。你可以将表格存储在字典中,并按表格中的名称键入。或者只是通过访问它们。等等,为什么不起作用?我刚刚试过,它似乎工作得很好。有一个这样的表列表怎么样:_tables=[Tabletable,metadata,autoload=True,autoload_with=engine for engine in engine.table_names]@bernie我会这么说,因为table是一个字符串,不能同时用作变量名和最后一行中的实际字符串?TBH我也有点困惑…啊,我知道你在哪里被绊倒了。您可以有一个表列表。请看我的答案。你可以将表格存储在字典中,并按表格中的名称键入。或者直接通过网络访问它们。