sql server - Python: Use JSON list as parameters in SQL -
res_vod = db.execute(""" select cast ((sum(r.salesvolume)/1000.0) decimal(6,1)) rawdata r inner join product p on r.productid = p.productid inner join calendar c on r.dayid = c.dayid c.weekcodeinyear between 30 , 50 , p.vodest in ('vod') , p.distributor in ({}) group c.weekcodeinyear order c.weekcodeinyear""".format(', '.join(["'" + studio + "'" studio in _studios])) ) the above code allows me add list parameter query. requirement add multiple parameters. in above code _studios list contains parameters.
_studios = ["warner","tf1","gaumont","pathe","studiocanal","francetv","m6snd"]
i have list like: _vodest = ["vod","est"] want add parameter p.vodest in query.
i have done using % has noted list contains double quotes("warner") sql query requires single quote('warner')
always use parametrized sql when possible:
def placemarks(n): return ','.join(['%s']*n) sql = """select cast ((sum(r.salesvolume)/1000.0) decimal(6,1)) rawdata r inner join product p on r.productid = p.productid inner join calendar c on r.dayid = c.dayid c.weekcodeinyear between 30 , 50 , p.vodest in ({}) , p.distributor in ({}) group c.weekcodeinyear order c.weekcodeinyear""".format( placemarks(len(_vodest)), placemarks(len(_studios))) args = [_vodest + _studios] res_vod = db.execute(sql, args)
Comments
Post a Comment