在列表中存储的字符串中插入 200 个变量
Inserting 200 variables in a string stored in list
我有一个变量列表:
listV = ['v1, 'v2', ...,'v200']
我想以更简洁的方式执行以下操作:
q1 = 'insert into myTable ({}, {}, {},....{})'.format(listV)
我想要的输出是:
q1 = 'insert into myTable (v1, v2, v3, ...., v200)'
对于较少数量的变量,我能够编写更清晰的代码,但是对于 200 个变量,我很难创建更清晰的代码。
我需要动态创建 q1
,因为 listV
的内容发生变化,但 listV
的长度保持不变。
为了省去一些麻烦,您也可以通过编程方式创建格式字符串。
listV = ["V1", "V2", "V3"]
n = len(listV)
fstring = "insert into myTable (" + "{}, " * (n-1) + "{})"
q1 = fstring.format(*listV)
# The * unpacks the items in listV into separate arguments
print(q1)
# >>> insert into myTable (V1, V2, V3)
>>> listV = ['v1', 'v2', 'v200']
>>> q1 = 'insert into myTable'
>>> q1 = q1 + ' (' + ', '.join(listV) + ')'
>>> q1
'insert into myTable (v1, v2, v200 )'
listV = ['v1', 'v2', 'v200']
q1 = "insert into myTable ({})".format(", ".join(listV))
这就是我能想到的方式....
my_list = [1,2,3]
q = "insert into mytable ("
for i in range(0, len(my_list), 1):
currNum = my_list[i]
if i != len(my_list) - 1:
q += str(currNum) + ","
else:
q += str(currNum)
q += ")"
print(q)
我是Python新手-_-
listV = [i for i in range(200)]
q1 = str("insert into myTable (" + "{}, "*(len(listV)-1) + "{})").format(*listV)
正如其他人所提到的,string-formatting sql-queries 使您的数据库容易受到 SQL-injections 的攻击。
编辑
Olvyn Roght 的回答非常好!这是一个也适用于整数的替代版本:
listV = [i for i in range(200)]
q1 = "insert into myTable ({})".format(str(listV)[1:-1])
我有一个变量列表:
listV = ['v1, 'v2', ...,'v200']
我想以更简洁的方式执行以下操作:
q1 = 'insert into myTable ({}, {}, {},....{})'.format(listV)
我想要的输出是:
q1 = 'insert into myTable (v1, v2, v3, ...., v200)'
对于较少数量的变量,我能够编写更清晰的代码,但是对于 200 个变量,我很难创建更清晰的代码。
我需要动态创建 q1
,因为 listV
的内容发生变化,但 listV
的长度保持不变。
为了省去一些麻烦,您也可以通过编程方式创建格式字符串。
listV = ["V1", "V2", "V3"]
n = len(listV)
fstring = "insert into myTable (" + "{}, " * (n-1) + "{})"
q1 = fstring.format(*listV)
# The * unpacks the items in listV into separate arguments
print(q1)
# >>> insert into myTable (V1, V2, V3)
>>> listV = ['v1', 'v2', 'v200']
>>> q1 = 'insert into myTable'
>>> q1 = q1 + ' (' + ', '.join(listV) + ')'
>>> q1
'insert into myTable (v1, v2, v200 )'
listV = ['v1', 'v2', 'v200']
q1 = "insert into myTable ({})".format(", ".join(listV))
这就是我能想到的方式....
my_list = [1,2,3]
q = "insert into mytable ("
for i in range(0, len(my_list), 1):
currNum = my_list[i]
if i != len(my_list) - 1:
q += str(currNum) + ","
else:
q += str(currNum)
q += ")"
print(q)
我是Python新手-_-
listV = [i for i in range(200)]
q1 = str("insert into myTable (" + "{}, "*(len(listV)-1) + "{})").format(*listV)
正如其他人所提到的,string-formatting sql-queries 使您的数据库容易受到 SQL-injections 的攻击。
编辑 Olvyn Roght 的回答非常好!这是一个也适用于整数的替代版本:
listV = [i for i in range(200)]
q1 = "insert into myTable ({})".format(str(listV)[1:-1])