如何在python脚本中格式化postgreSQL查询以提高可读性?

问题描述 投票:1回答:1

我有另一个与我正在上学的项目有关的问题。我创建了一个PostgreSQL数据库,有5个表和一堆行。我创建了一个脚本,允许用户使用菜单在数据库中搜索信息,以及添加和删除其中一个表中的内容。

在PostgreSQL CLI本身显示一个表时,它看起来很干净,但是,每当显示一个没有用户输入的简单表时,它看起来非常混乱。虽然这是项目的可选组件,但我更喜欢看起来更清洁的东西。

我尝试过各种潜在的解决方案,我在网上看过,甚至还有一些来自堆栈溢出的解决方案,但它们都不起作用。每当我尝试使用我已经看到并且有点理解的任何方法时,我总会得到错误:

TypeError:'int'对象不可订阅

我在我的代码中添加了一堆打印语句,试图弄清楚为什么它拒绝进行类型转换。这是愚蠢的。知道我这可能是一个我看不到的简单拼写错误。甚至不确定这个解决方案是否有效,只是我在网上看到的一个例子。

try:
        connection = psycopg2.connect(database='Blockbuster36', user='dbadmin')
        cursor = connection.cursor()
except psycopg2.DatabaseError:
        print("No connection to database.")
        sys.exit(1)

cursor.execute("select * from Customer;")
tuple = cursor.fetchone()
List_Tuple = list(tuple)

print("Customer_ID | First_Name | Last_Name | Postal_Code | Phone_Num | Member_Date")
print(List_Tuple)
print()
for item in List_Tuple:
        print(item[0]," "*(11-len(str(item[0]))),"|")
        print(item)
        print(type(item))
        print()
        num = str(item[0])
        print(num)
        print(type(num))
        print(str(item[0]))
        print(type(str(item[0])))

cursor.close()
connection.close()

我上传了通过基本python脚本和PostgreSQL CLI获得的输出之间的差异。出于隐私原因,我已在表格中屏蔽了姓名。 https://temporysite.weebly.com/

它不一定看起来像PostgreSQL,但任何看起来比当前混乱更好的东西都会很棒。

python python-3.x formatting psycopg2 postgresql-9.2
1个回答
0
投票

使用string formatting来做到这一点。您也可以将其设置为向右或向左填充。至于日期使用datetime.strftime。以下将填充设置为10个位置:

print(”{:10}|{:10}".format(item[0], item[1]))
© www.soinside.com 2019 - 2024. All rights reserved.