代码中%d能不能根据list列表的长度指定可以变化的数量?
list = [table, datetime.now()]
list.extend(point_list)
cur.execute('insert into %s values(%d,%d,%d)',list)
代码中%d能不能根据list列表的长度指定可以变化的数量?
list = [table, datetime.now()]
list.extend(point_list)
cur.execute('insert into %s values(%d,%d,%d)',list)
当然没问题,不过,题主得先把变量名list替换成其他的什么,比如d,因为list是python的内置类,用list做变量名,就把list内置类搞坏了。
>>> d = [3,4,5]
>>> s = ','.join(['%d' for i in range(len(d))])
>>> sql = 'insert into %%s values(%s)'%s
>>> sql
'insert into %s values(%d,%d,%d)'
关于使用list做变量名的危害性,请参看下面的代码:
>>> s = 'abc'
>>> list(s)
['a', 'b', 'c']
>>> list = [3,4,5]
>>> list(s)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
list(s)
TypeError: 'list' object is not callable