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

标签 python mysql tuples pymysql

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

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

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

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

最佳答案

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

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}

关于python - 遍历元组内的元组并使用元组内的字符串作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970181/

相关文章:

php - 获取所有不同的用户 - MySql

MySQL 批量插入或更新

php - 数组 : What is the "s:" value in syntax based on?

python:使用元组重新排列列表的内容

c++ - 如何查找元素是否存在于元组中?

python - 检索 youtube 订阅 python api

python - 多处理:如何在类中定义的函数上使用 Pool.map?

python - 如果 x 是列表,为什么 x += "ha"工作,而 x = x + "ha"抛出异常?

c++ - 在两个元组上使用带有 std::apply 的折叠表达式

python - Python图像退化函数的实现和应用