编写Python脚本获取多表计数的技术求助
解决方法
我来帮你调整脚本,实现你想要的输出格式!核心问题是你当前的脚本没有把表名和对应的SQL查询绑定起来,所以没法输出对应的表名称。我们只需要把表名和SQL语句配对,循环时同时获取这两个信息即可。
修改后的完整代码:
import psycopg2 # 建立数据库连接 conn = psycopg2.connect(user="appuser", database="onedb", host="192.168.1.1", port="5432") cursor = conn.cursor() # 将表名与对应的查询语句配对成元组列表 query_pairs = [ ("oltptransactions", """SELECT COUNT(id) FROM appuser.oltptransactions"""), ("oltpcases", """SELECT count(id) FROM appuser.oltpcases""") ] for table_name, sql in query_pairs: cursor.execute(sql) result = cursor.fetchall() # 按照你期望的格式输出,若要同一行显示可添加end=' '参数 print(f"('{table_name}:', {result})") conn.close()
关键改动说明:
- 把原来单独的SQL列表改成了表名+SQL语句的元组列表
query_pairs,这样循环时可以同时拿到要显示的表名和要执行的查询。 - 循环中通过
table_name, sql解包元组,替换了原来固定的'Counts:'字符串,直接输出对应的表名。 - 如果希望所有结果在同一行显示,只需修改print语句为:
print(f"('{table_name}:', {result})", end=' '),执行后就会得到你想要的一行输出格式:('oltptransactions:', [(12L,)]) ('oltpcases:', [(24L,)])
内容的提问来源于stack exchange,提问作者ribbit
相关产品推荐
相关产品推荐

