迭代元组中的元组并使用元组中的字符串作为变量

2024-04-28 22:45:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个数据库中有很多表,我使用pymysql连接到我的数据库,得到了所有的表名。打印所有表名时,它们的存储方式如下:

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

我要做的是对每个表,将它们转换成一个具有自己表名的数据帧。这就是我尝试过的:

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

另外,通过将元组转换成一个列表,不管我认为字符串是个问题,我如何去掉撇号,这样我就可以用它们作为变量,还是没有这样的方法

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

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

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


Tags: 数据in数据库forreadtables方式table
1条回答
网友
1楼 · 发布于 2024-04-28 22:45:02

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

some_tuple[dome_index] = value

这将生成一个元组,其中一个元素是dataframe:

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}

相关问题 更多 >