在python 3.7中替换字符串中的值时出现的问题
我是Python新手。我正在尝试按如下方式形成SQL insert查询:在python 3.7中替换字符串中的值时出现的问题,python,python-3.x,Python,Python 3.x,我是Python新手。我正在尝试按如下方式形成SQL insert查询: table_name = kwargs['table_name'] sql = f"INSERT INTO {table_name} (col1, col2) VALUES (%s, %s)" params = [] for k, v in my_dict.items(): params.append([v, k]) for param in params: sql = sql % param <
table_name = kwargs['table_name']
sql = f"INSERT INTO {table_name} (col1, col2) VALUES (%s, %s)"
params = []
for k, v in my_dict.items():
params.append([v, k])
for param in params:
sql = sql % param <---IN THIS LINE I AM GETTING ERROR TypeError: not enough arguments for format string
我不知道怎么做。
%
替换只识别多个参数它是元组的实例(或dict
用于命名替换)
所以试试这个:
对于我的目录项()中的k,v:
参数附加((v,k))
参考资料:使用sql=sql%(参数[1],参数[0])
而不是sql=sql%param
您应该做的是
table_name = kwargs['table_name']
sql = f"INSERT INTO {table_name} (col1, col2) VALUES "
params = []
for k, v in my_dict.items():
params.append("({}, {})".format(k, v))
sql += ', '.join(params)
print(sql)
这样,您就可以确保在查询中为dict值中的每个元素添加一个('',)
字符串
table_name = kwargs['table_name']
sql = f"INSERT INTO {table_name} (col1, col2) VALUES "
params = []
for k, v in my_dict.items():
params.append("({}, {})".format(k, v))
sql += ', '.join(params)
print(sql)