繁体   English   中英

如何使用 Psycopg2 和 Postgresql 在新行上打印每一行

[英]How to print each row on a new line using Psycopg2 and Postgresql

我使用 Psycopg2 编写了一个小型 Python 程序,通过名字或姓氏查询 Postgresql 数据库。 如果我有多个同名条目,除了格式之外,一切正常。 例如,如果只有一个“迈克尔”,那么它会正确显示在一行上,但是,如果有四个名为“丹”的人,他们会并排显示。 我想在每个人之后创建一个新行,以便格式看起来正确,但我无法这样做。

这是我正在使用的查询:

lname = input("Enter First Name: ").upper()

                    print ("\nFirstName    LastName     Office#            Fax#             Cell#")
                    print ("----------- --------- ---------------  ----------------  ---------------")
                    query = "SELECT rtrim(firstname, ' '), rtrim(lastname, ' '), rtrim(officephone, ' '), rtrim(faxnumber, ' '), rtrim(cellphone, ' ') FROM employees where firstname = '" + str(lname) + "';"
                    cur.execute(query)
                    results = cur.fetchall()
                    print(results)
                    print ("\n")

我不知道在我的查询中输入什么,以便它会在每个人之后转到一个新行。 任何帮助都会很棒!

fetchall()返回一个列表。 您可以遍历列表并打印结果。

for result in results:
    print(result)

您的调用results = cur.fetchall()只是将所有检索到的数据放入一个列表中。 调用print(results)不会在单独的行上打印所有项目:

>>> b=((1,2,3),(4,5,6))
>>> print(b)
((1, 2, 3), (4, 5, 6))

您需要遍历它们:

>>> b=((1,2,3),(4,5,6))
>>> print(b)
((1, 2, 3), (4, 5, 6))
>>> for r in b:
...  print(r)
... 
(1, 2, 3)
(4, 5, 6)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM