python - 如何在 python 脚本中格式化 postgreSQL 查询以获得更好的可读性?

标签 python python-3.x formatting psycopg2 postgresql-9.2

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

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

我尝试了网上看到的各种可能的解决方案,甚至有一些来自堆栈溢出,但没有一个起作用。每当我尝试使用我见过并且有所了解的任何方法时,我总是会收到错误:

类型错误:“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,但任何看起来比当前困惑的东西都更好。

最佳答案

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

print(”{:10}|{:10}".format(item[0], item[1]))

关于python - 如何在 python 脚本中格式化 postgreSQL 查询以获得更好的可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55661120/

相关文章:

python - docker-compose 和 django 错误

Python 多处理 - 从池中动态重新分配作业 - 无需异步?

python - 在 Python 中的标记化文本中查找多词术语

Python 2进程IPC

python - 从 Python 2D 列表中删除列的最佳/快速方法

Java - 使用对象和 toString 方法格式化字符串以显示井号和带有两个前导零的小数?

python - 从应用程序引擎 python 中删除文件

python - 如何导入Python模块

c++ - 如何使用具有类似 printf 格式的 C++ std::ostream?

linux - 输出shell变量时如何保留引号?