python sql in %问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

python sql in %问题

a123456678 2016-07-04 16:18:20 1920
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,但是查询会报错,求问该怎么解决

SQL Python
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:50:50

    问题很简单,提示 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')"
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程