我在python脚本中使用sql_connection executemany命令一次将数百或数千行加载到我的表中。我这样做的代码如下:
try:
items = []
global jsontuple
for tup in jsontuple:
items.append(tup)
global tweet_count
stmnt = "INSERT INTO tbltweet" " (id,text,posted,username,retweetCount,link,friends,followers,partisanship)"" VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"
sql_cursor.executemany(stmnt, items)
sql_connection.commit()
num_tweets = len(jsontuple)
tweet_count += num_tweets
except:
sql_connection.rollback()
全局jsontuple是一个元组元组,其中每个组成元组都包含insert语句中引用的变量。由于executemany查询需要数据采用列表类型格式,因此我将每个元组放在jsontuple中并将其附加到名为items的列表中。然后我执行executemany查询。
问题是,我几乎每次调用此函数都会得到回滚(但是,有时函数执行没有问题)。我设置的方式有什么不对?我进行了三重检查,以确保SQL表格中的格式与我在脚本中生成的查询一致。我还尝试使用元组元组作为命令的数据,而不是将其转换为列表,但结果完全相同。
谢谢!