首页 > python sql in %问题

python sql in %问题

In[1]:secucode 
Out[1]:('002604',
     '002645',
     '002702',
     '002771',
     '300205',
     '300264',
     '300322')
In[2]: type(secucode)
Out[2]: tuple

In[3]:sql_date = "SELECT B.ListDate FROM SecuMain A,LC_AShareIPO B WHERE A.InnerCode = B.InnerCode AND A.SecuCode in %s" % secucode

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-42-3c7a28973a6f> in <module>()
----> 1 sql_date = "SELECT B.ListDate FROM SecuMain A,LC_AShareIPO B WHERE A.InnerCode = B.InnerCode AND A.SecuCode in %s" % secucode

TypeError: not all arguments converted during string formatting

查询一堆股票的上市时间,所以用了in,secucode类型为tuple,但是查询会报错,求问该怎么解决


问题很简单,提示 secucode 不是字符串。

直接 str(secucode) 即可

sql_date = "SELECT B.ListDate FROM SecuMain A,LC_AShareIPO B WHERE A.InnerCode = B.InnerCode AND A.SecuCode in %s" % str(secucode)

Update:
推荐使用 str.format, 会自动 str

In [6]: a = ('sdf', 'sdf')

In [7]: '{}'.format(a)
Out[7]: "('sdf', 'sdf')"
【热门文章】
【热门文章】