gpt4 book ai didi

python - 循环执行多个SQL语句并将结果存储在Python对象中

转载 作者:行者123 更新时间:2023-12-01 01:04:17 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含大约 100 个数据库表名称,并以换行符分隔,并且我有一个函数可以在此处的列表中返回这些表名称:

def grab_tables(self):
table_list = []
with open('tables.txt', 'r') as file:
datalines = (line.rstrip('\r\n') for line in file)
for line in datalines:
table_list.append(line)
return table_list

我现在想要连接到数据库并对所有这些表执行 select count(*) 并将表名称和计数存储在某个 python 对象(列表、字典等)中。到目前为止我所拥有的是:

def run_sql(self):
s = self.connection_src() #function that connects to Oracle DB
tables = self.grab_tables()
a = s.cursor()
z = []
for table in tables:
a.execute('SELECT count(*) FROM {}'.format(table))
z.append(a)

print(z)

但这不起作用,因为它将连接详细信息附加到 z。显然不正确。有什么想法吗?

最佳答案

问题根本不在于循环多个 SQL 语句。问题是如何从调用 execute 中获取结果。

答案是在光标上调用fetchone()。这将为您提供一个元组,因此获取其中的第一个元素:

a.execute('SELECT count(*) FROM {}'.format(table))
z.append(a.fetchone()[0])

关于python - 循环执行多个SQL语句并将结果存储在Python对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com