python数据库插入格式化

时间:2017-12-09 02:23:39

标签: python database postgresql

我正在尝试插入python 3.6中的postgresql数据库,目前正在尝试执行此行

RoleScope

但每次尝试运行表名时都会有' '它周围就像INSERT INTO table_name(' 12',...,...,...)......而不是 INSERT INTO table_name(12,...,...,...)...如何让字符串格式化程序保留引号或删除它们或什么?它导致12周围的语法错误,因为它不需要单引号。

2 个答案:

答案 0 :(得分:1)

将它与三重引号一起使用。您也可以将table_name作为第二个参数的元素传递。

 cur.execute("""INSERT INTO %s (price, buy, sell, timestamp) VALUES (%s, %s, %s, %s)""",(table_name, exchange_rate, buy_rate, sell_rate, date))

更详细的方法;

  • Triple qoutes为开发人员提供了将SQL查询编写为多行的更改。

  • 此外,它允许您使用单个和双重qoutes而不从它们逃脱。 (它是复杂SQL查询的受益者,但你不需要这样做)

答案 1 :(得分:0)

使用新的字符串格式设置具有干净的表示形式。 %s显式转换为字符串,您不希望这样。格式为您选择最适合的类型。

table_name = "myTable"
exchange_rate = 1
buy_rate = 2
sell_rate = 3
date = 123
x = "INSERT INTO {0} (price, buy, sell, timestamp) VALUES ({1}, {2}, {2}, {4})".format(
    table_name, exchange_rate, buy_rate, sell_rate, date)

print x
>INSERT INTO myTable (price, buy, sell, timestamp) VALUES (1, 2, 2, 123)