我有一个SQL Server数据库,它有一个表,列出了其他表以及它们上的一些元数据。我可以通过Python将其提取到列表中。然后我想做的是查询每个表中的行数,然后将结果附加到我的列表中。
例如,我运行脚本的第一部分,得到一个项目列表,每个项目都包含 3 个项目的列表(名称、活动、表名称(。然后,我想循环浏览我的列表,选择第三个项目,在我的SQL查询中使用它,然后将结果附加到列表中的第四个项目中。
它开始了
[[table1, act1, Table_1],[table2, act2, Table_2],[table3, act3, Table_3]]
第二部分,首先Table_1,计算行数,然后将其附加到列表中
[[table1, act1, Table_1,10],[table2, act2, Table_2],[table3, act3, Table_3]]
然后对于列表 2 等
[[table1, act1, Table_1,10],[table2, act2, Table_2,16],[table3, act3, Table_3]]
尝试了一些事情,但没有进一步!
提前谢谢。
import pyodbc
conn = pyodbc.connect(connetStr)
cursor = conn.cursor()
wffList=[]
cursor.execute('SELECT C_NAME,C_ACTIVE, C_TABLE_NAME from T_FORM_HEAD')
for row in cursor:
wffList.append(row)
for row in wffList:
tabName=row[2]
quer=('SELECT Count(*) FROM '+ tabName)
cursor.execute(quer)
rowCount=cursor.fetchone()
您可以创建新列表并附加包含所有四个值的行
new_results = []
for row in wffList:
tabName = row[2]
quer = ('SELECT Count(*) FROM '+ tabName)
cursor.execute(quer)
rowCount = cursor.fetchone()
row.append(rowCount)
new_results.append(row)
print(new_results)
或者您可以使用枚举来获取行的编号
for number, row in enumerate(wffList):
tabName = row[2]
quer = ('SELECT Count(*) FROM '+ tabName)
cursor.execute(quer)
rowCount = cursor.fetchone()
wffList[number].append(rowCount)
print(wfflist)
但您可能也可以编写一个 SQL 查询来一次获取所有查询。
但此刻对我来说可能很复杂。