Python 带变量的字符串格式化 - 不同的方法

Python string formatting with variables - different methods

我正在查看一些我正在对其进行现代化改造的较旧的 Python 脚本,它们在查询字符串中使用了这种格式:

query = " SELECT DISTINCT account from customers..accounts WHERE date = '" + date + "'"
cursor.execute(query)

我原以为应该使用以下格式执行此操作:

query = " SELECT DISTINCT account from customers..accounts WHERE date = {}".format(date)
cursor.execute(query)

你什么时候会使用原始格式?有使用它的理由吗?它串联吗?为什么要在 SQL 查询中连接?

就我个人而言,我总是 运行 我的 sybase 查询使用模块:

cursor.execute("SELECT DISTINCT account from customers..accounts WHERE date = @date", {"@date": date})

直接改成你在底部详述的驱动方式即可。

我无法回答为什么这样做,因为用连接的字符串来做没有任何意义。