簡體   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