Python中为列表元素添加字符串生成SQL查询语句
解决方案
首先修正原列表的语法问题:Python中整数不能以0开头(如01、08),这类带前导零的数值需改为字符串类型,避免八进制解析报错。
使用以下Python代码即可生成目标SQL语句列表:
# 修正后的输入列表 list1 = [ [33, 35, 50, 52, 67, 69, 82, 84, 86, 99], ['01', '16', '18', '35', '50', '52', '67', '69', '84', '08'] ] # 生成目标SQL语句列表 sql_queries = [f"select * from table where id in ({', '.join(map(str, sub_list))})" for sub_list in list1] print(sql_queries)
代码说明
- 用列表推导式遍历输入列表的每个子列表,批量生成SQL语句;
map(str, sub_list)将子列表中的所有元素转为字符串,确保前导零保留;', '.join(...)把元素拼接成逗号分隔的字符串,嵌入SQL的in条件中;- f-string完成SQL语句的拼接。
运行代码后输出结果:
['select * from table where id in (33, 35, 50, 52, 67, 69, 82, 84, 86, 99)', 'select * from table where id in (01, 16, 18, 35, 50, 52, 67, 69, 84, 08)']
内容的提问来源于stack exchange,提问作者Lim Muoykear
相关产品推荐
相关产品推荐

