小编bla*_*bla的帖子

在python中将Postgresql表打印到标准输出

我在Postgresql中有一个名为mytable的表,我需要将该表的内容从python应用程序打印到stdout。

我目前正在执行以下操作:

        conn = psycopg2.connect("dbname=postgres user=postgres password=psswd")
        cur = conn.cursor() 
        cur.copy_to(sys.stdout,'mytable',sep = '\t')
Run Code Online (Sandbox Code Playgroud)

但是,当它打印在某些列之间时,会出现一些“ \ N”。我相信发生这种情况的原因是,在打印过程中的某处,该行超出了并转到psql终端中的下一行,因此出现这些\ N。

输出:

E0307   1       M       400     Ethan   UTDallas        12.98580404     \N      50.79403657     1
E0307   1       M       400     Lucas   Baylor  15.18511175     \N      56.87285183     3
E0307   1       M       400     Jackson Baylor  13.64228411     \N      56.87285183     3
E0307   1       M       400     Jacob   Baylor  13.19878974     \N      56.87285183     3
E0307   1       M       400     Samuel  Baylor  14.84666623     \N      56.87285183     3
Run Code Online (Sandbox Code Playgroud)

我的问题如下:

  1. 如何摆脱输出中的\ N?有其他打印表格的方法吗?我试图避免必须执行整个“ SELECT * FROM my_table”查询的方式。只是使用要打印的表格名称的东西。

  2. 另外,在打印时如何获取表格标题?我尝试了以下方法:

    cur.execute(“使用csv标头将mytable复制到STDOUT”)

我收到此错误消息:

ProgrammingError: can't …
Run Code Online (Sandbox Code Playgroud)

python postgresql etl psycopg2

6
推荐指数
1
解决办法
3722
查看次数

标签 统计

etl ×1

postgresql ×1

psycopg2 ×1

python ×1