Python Sqlalchemy-自动实例化所有表
这里是一个简单的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'] 我通常会按照如下方式创建每个
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我也有点困惑…啊,我知道你在哪里被绊倒了。您可以有一个表列表。请看我的答案。你可以将表格存储在字典中,并按表格中的名称键入。或者直接通过网络访问它们。