python sql insert into报错

In[137]: tuples
Out[137]: 
[(Timestamp('2005-01-04 00:00:00'),
  0.18032084962653375,
  0.18032084962653375,
  0.2136968072480386),
 (Timestamp('2005-01-05 00:00:00'),
  0.1951611031697977,
  0.1951611031697977,
  0.21450521134359202),
 (Timestamp('2005-01-06 00:00:00'),
  0.18996808374270246,
  0.18996808374270246,
  0.21377174410692534),
 (Timestamp('2005-01-07 00:00:00'),
  0.18775732421241292,
  0.18775732421241292,
  0.21416382056376848),
 (Timestamp('2005-01-10 00:00:00'),
  0.19266674603194708,
  0.19266674603194708,
  0.21433076019242644)]
In[138]: sql = "INSERT INTO Correlation VALUES(%s, %s, %s, %s) "
In[139]: cur.executemany(sql, tuples)
Traceback (most recent call last):
  File "C:\Users\wxyc\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-139-c1ab356bb7ad>", line 1, in <module>
    cur.executemany(sql, tuples)
pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 4 parameters were supplied', 'HY000')
# 尝试插入一个
In[140]: cur.executemany(sql, tuples[0])
Traceback (most recent call last):
  File "C:\Users\wxyc\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-140-97479c6fa331>", line 1, in <module>
    cur.executemany(sql, tuples[0])
TypeError: ('Params must be in a list, tuple, or Row', 'HY000')

In[141]: type(tuples[0])
Out[141]: tuple

求问怎么解决,插入的应该是tuple呀

阅读 4.9k
2 个回答

没有指定sql的列吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进