Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 灵活的参数化查询_Python 3.x_Sqlite - Fatal编程技术网

Python 3.x 灵活的参数化查询

Python 3.x 灵活的参数化查询,python-3.x,sqlite,Python 3.x,Sqlite,我有一个方法,它使用*args接受未知数量的参数。我试图在本地Sqlite数据库中持久化这些参数 def callingMethod(self): self.store("value1", "value2", "value3", "value4") def store(self, *args): self.conn.cursor.execute("INSERT INTO mytable VALUES (?,?,?,?)", args) 我不能总是假设将传递4个参数,但我在参

我有一个方法,它使用
*args
接受未知数量的参数。我试图在本地Sqlite数据库中持久化这些参数

def callingMethod(self):
    self.store("value1", "value2", "value3", "value4")


def store(self, *args):
    self.conn.cursor.execute("INSERT INTO mytable VALUES (?,?,?,?)", args)

我不能总是假设将传递4个参数,但我在参数化查询中允许4个参数。有没有办法在我的查询中接受灵活数量的值?

如果参数数量未知,并且希望将其存储在表列中,则意味着需要未知数量的列。数据库表不是这样工作的,它们总是有固定数量的列。我有一定数量的列,但并不总是为该列提供一个值,因为它不适用。无论如何都需要传递一个参数。这是一个糟糕的设计,但如果您最多可以期望n个参数,那么您的表应该有n+1列。添加逻辑以确定函数接收的实际参数数量,然后相应地插入空白值。