在Python中将元组转换为字符串时出错

Cem*_*mre 1 python string tuples

我有一个这样的元组,基本上是一个DB记录

record = ('R70:Congestion Ratio', 'pm_201204151900_KPI1.csv', 'pmexport_04_15_2012_20_00.tar.gz')
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为元组,然后转换为字符串以获取查询

"INSERT INTO PM_NEW_COUNTERS (COUNTER_NAME, CSV_FILE_NAME, TAR_FILE_NAME) VALUES %s" %(tuple(record))
Run Code Online (Sandbox Code Playgroud)

但是我得到了TypeError: not all arguments converted during string formatting我做错了什么?有没有更好的实现我想要实现的目标?

小智 5

不要像这样构建SQL.使用适当形式的数据库引擎.

SQLite中,它的工作原理如下:

cur.execute("""INSERT INTO PM_NEW_COUNTERS
  (COUNTER_NAME, CSV_FILE_NAME, TAR_FILE_NAME)
  VALUES (?, ?, ?)""", (a, b, c))
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Python数据库API规范v2.0.