【问题标题】:insert numbers into table using pyodbc使用 pyodbc 将数字插入表中
【发布时间】:2020-03-07 02:31:54
【问题描述】:

我正在尝试使用executemany 函数将一系列数字插入到 SQL Server 数据库中。我的输入将是一个从几百行到一万行不等的数字列表。

cursor = cnxn.cursor()
sql = 'CREATE TABLE [dbo].[#numbers] ([number] int not null)'

cursor.execute(sql)
cursor.commit()

sql = 'INSERT INTO [dbo].[#numbers] (number) values (?)'

l = list(range(1, 10))
cursor.executemany(sql,l)
TypeError: ('Params must be in a list, tuple, or Row', 'HY000')

我猜我需要将我的整数列表转换为列表或元组列表,这似乎是我真正在努力解决的问题。

【问题讨论】:

  • 尝试删除sql insert命令中的(number)

标签: python pyodbc


【解决方案1】:

就像错误所说的那样:参数应该在列表、元组或行中。

您正在尝试插入1, 2, 3, 4, ...,这是一个单个值的列表。

你想要的是为每一行插入一个 list 值,这意味着:

[[1], [2], [3], [4], ...]

所以,如果您将 l 更改为:

l = [[i] for i in range(1, 10)]

那么它应该可以工作。

【讨论】:

  • 完美运行,谢谢。试图将 int 转换为带有 l = list(list(i) for i in range(1, 10)) 的列表,其中 int 不可迭代
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 2019-11-27
  • 2014-08-18
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多