遍历元组内的元组并使用元组内的字符串作为变量

iterating over tuples inside a tuple and using string inside tuples as a variable

我在数据库中有很多 table,我正在使用 pymysql 连接到我的数据库并获得所有 table 名称。当我打印所有 table 名称时,它们存储如下:

tables = (('table1',), ('table2',), ('table3',), etc...)

我想要做的是为每个 table,将它们变成一个具有自己 table 名称的数据框。这是我试过的:

for table in tables:
   table[0] = pd.read_sql(f'select * from {table[0]}', con = conn)

并且还通过将元组转换为列表,但是我认为字符串是问题所在,我如何去掉撇号以便将它们用作变量,或者没有这样的方法吗?

我找不到任何关于 SO 的相关问题,只有一些给了我一些想法的东西。

TypeError: 'tuple' object does not support item assignment when swapping values

How can I iterate over only the first variable of a tuple

元组是不可变对象你不能这样做,第一个查询返回的结果是元组的元组:

some_tuple[dome_index] = value

这将生成一个元组的元组,其中一个元素是数据框:

tables = tuple((pd.read_sql(f'select * from {table_name}', con = conn),) for (table_name,) in tables)

编辑:

您可以创建一个元组对 table_name, dataframe:

tables = tuple((table_name, pd.read_sql(f'select * from {table_name}', con = conn)) for (table_name,) in tables)

你需要字典:

tables = {table_name: pd.read_sql(f'select * from {table_name}', con = conn) for (table_name,) in tables}