python中,编写带in的sql语句,插入python的list变量,实现动态传值。

例如 sql语句是:

select * from space where space.name in ('shanghai','beijing')

 若想动态实现in 后的内容,可以试试这样

1,使用tuple插入

city_list=["heifei","nanjing","shanghai"]
sql="select * from space where space.name in {}".format(tuple(city_list))
print(sql)

 打印的sql: 

 select * from space where space.name in ('heifei', 'nanjing', 'shanghai')

注意,使用tuple有个坑,就是若元素只有一个的话,会格式不正确,比如:

city_list=["changchun"]
sql="select * from space where space.name in {}".format(tuple(city_list))
print(sql)

打印的sql 会多一个逗号,

select * from space where space.name in ('changchun',)

2,使用str的join方法

city_list=["heifei","nanjing","shanghai"]
sql="select * from space where space.name in ('{}')".format("','".join(city_list))
print(sql)

打印的sql:

select * from space where space.name in ('heifei','nanjing','shanghai')

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐