代码之家  ›  专栏  ›  技术社区  ›  AMADANON Inc.

使用psycopg2,如何获得“信息:”行?

  •  3
  • AMADANON Inc.  · 技术社区  · 8 年前

    我想用python编写一个脚本,它分析一个表,然后使用该分析的输出进行更多的处理。

    以下是我在psql中得到的:

    bacula=# analyze verbose version;
    INFO:  analyzing "public.version"
    INFO:  "version": scanned 1 of 1 pages, containing 1 live rows and 0 dead rows; 1 rows in sample, 1 estimated total rows
    ANALYZE
    bacula=# 
    

    我想要的行是以“INFO:”开头的行(具体地说,是关于活/死行的信息,具有更复杂的逻辑,以确定是否要执行真空填充)。

    以下是我到目前为止的情况:

    import psycopg2
    conn = psycopg2.connect(connectionstring)
    conn.set_isolation_level(0)
    cur.execute("analyze verbose version")
    print(cur.statusmessage)
    

    库尔。statusmessage显示psql输出的最后一行(“分析”)。如何获取信息:行?

    我试过“fetchall”,但没有成功。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Michael Robellard    8 年前

    我认为您要查找的是连接对象上的notices属性。

    根据文件:

    通知

    包含会话期间发送到客户端的所有数据库消息的列表。

    http://initd.org/psycopg/docs/connection.html