gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:53:50 27 4
gpt4 key购买 nike

我在 postgresql 中有一个名为 mytable 的表,我需要将此表的内容从 python 应用程序打印到标准输出。

我目前正在做以下事情:

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

但是,当它打印在某些列之间时,我得到一些“\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

我的问题如下:

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

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

    cur.execute("COPY mytable TO STDOUT with csv header")

我收到此错误消息:

ProgrammingError: can't execute COPY TO: use the copy_to() method instead

另外,我不确定这是否是最好的方法。但是我尝试做的事情:)

最佳答案

没有方便的 postgres 表来测试它,但这对你有用吗?

import psycopg2 as pg
import pandas as pd
import pandas.io.sql as psql

connection = pg.connect("dbname=postgres user=postgres password=psswd")
#my_table = pd.read_sql_table('table_name', connection)
my_table = pd.read_sql('select * from my-table-name', connection)
another_attempt= psql.read_sql("SELECT * FROM my-table-name", connection)

print(my_table)

# OR
print(another_attempt)

关于python - 在 python 中将 postgresql 表打印到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com