在python中使用pymysql踩过的坑

蹲街弑〆低调 提交于 2019-12-27 05:14:32

在python中使用pymysql踩过的坑

当你的sql中使用到%()s来接收dict格式的参数时,无论是有没有使用到的key,key的值都不能是字典列表[{}],
否则会报TypeError: sequence item 0: expected str instance, dict found错误,其它的二元数组[[]]、字典{{}}等都不会报错。
举例:


    # 只要param中包含像c这样的字典列表[{}]值,无论sql中有没有使用这个参数都会报错
    param = {"a": 11, "b": ['x','z'], "c": [{"d": 1}], "d": {"f": {"e": 1}}}
    sql = """
        select * from table where true 
        and a = %(a)s 
        and b = %(b)s 
        -- and c = %(c)s 
        and d = %(d)s
    """
    cur.execute(sql, param)


    

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!