因为我想插入大小不同的表,所以我需要能够在insert语句中使用字符串变量,例如:
numvals = '?,?'
vals = 'delays_values[0], delays_values[1]'
converted_valz = 'ID int ,Description text'
c.execute("CREATE TABLE DELAYS ("+converted_valz+")")
c.execute("INSERT INTO DELAYS VALUES ("+numvals+" )", (vals))
然而,这给了我前面提到的错误,它确切地说:sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用19个,提供了349个
出于某种原因,如果我用它实际包含的硬编码值替换VAL,那么它实际上是工作的,但是我被迫硬编码值,这违背了所有这些的目的。请帮忙
numvals = '?,?'
vals = 'delays_values[0], delays_values[1]'
converted_valz = 'ID int ,Description text'
c.execute("CREATE TABLE DELAYS ("+converted_valz+")")
c.execute("INSERT INTO DELAYS VALUES ("+numvals+" )", (delays_values[0], delays_values[1]))
这可能是一个过于简化的问题,可能会在以后引起问题,但一个简单的解决方法是在最后使用
eval(vals)
对vals
字符串求值:不知道为什么
vals
是一个字符串开头,但老实说相关问题 更多 >
编程相关推荐