如何使用 Psycopg2 和 Postgresql 在新行上打印每一行
How to print each row on a new line using Psycopg2 and Postgresql
我写了一个 Python 小程序,使用 Psycopg2 按名字或姓氏查询 Postgresql 数据库。如果我有多个同名条目,除了格式化之外一切都工作正常。例如,如果只有一个"Michael",那么它会正常显示在一行中,但是如果有四个名为"Dan"的人,他们就会并排显示。我想在每个人之后换行,以便格式看起来正确,但我做不到。
这是我正在使用的查询:
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() returns 一个列表。您可以遍历列表并打印结果。
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)
我写了一个 Python 小程序,使用 Psycopg2 按名字或姓氏查询 Postgresql 数据库。如果我有多个同名条目,除了格式化之外一切都工作正常。例如,如果只有一个"Michael",那么它会正常显示在一行中,但是如果有四个名为"Dan"的人,他们就会并排显示。我想在每个人之后换行,以便格式看起来正确,但我做不到。
这是我正在使用的查询:
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() returns 一个列表。您可以遍历列表并打印结果。
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)