使用旧例子:
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
答案 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
这是一种痛苦。