You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:27:47