如何使用python编写数据库插入脚本?

时间:2011-02-02 19:58:35

标签: python mysql

使用旧例子:

 csr = con.cursor()
 csr.execute('Truncate table test.data')
 csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata)
 con.commit()

如何将%s插入

csr.executemany('INSERT INTO test.data VALUES (?,?,?,?)', Newdata)

试过:

csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)', Newdata) % symbol

1 个答案:

答案 0 :(得分:4)

应该是:

csr.executemany('INSERT INTO test.%s VALUES (?,?,?,?)' % symbol, Newdata)

虽然我会做类似的事情:

query = 'INSERT INTO test.%s VALUES (?,?,?,?)' % symbol
csr.executemany(query, Newdata)

请注意,?不是所有数据库包装器的默认占位符。在某些%s中使用(例如mysqldb,psycopg2)。在这些情况下,部分构建查询有时会更简单。

这样做的:

query = 'INSERT INTO test.%s' % symbol
query += ' VALUES (%s,%s,%s,%s)'

否则你需要这样的东西:

query = 'INSERT INTO test.%s VALUES (%%s,%%s,%%s,%%s)' % symbol

这是一种痛苦。