目前,我正在尝试搜索数据库以获取某些事件。我的问题是这样的
SELECT * FROM events WHERE summary ILIKE E'%test%' AND start_time > '2010-10-01'简单地说,我需要查询来查找日历事件的数据库,并返回带有“test”的摘要的任何内容,并且在本月初之后。
这将在从数据库命令行查询时返回预期的结果。但是,当我尝试在Python脚本和psycopg2中使用它时,如下所示:
cursor.execute("SELECT * FROM events WHERE summary ILIKE E'%test%' AND start_time > %(begin)s ", {'begin' : datetime.datetime(2010,10,1) })我得到一个类型错误
*** TypeError: 'dict' object does not support indexing做一些初始的谷歌搜索,这听起来像是我使用通配符的方式。不过,我可能错了,我可能遗漏了一些我看不到的简单东西。希望来自社区的一双新鲜的眼睛能纠正我的傲慢;)
发布于 2010-10-16 00:58:48
我不确定这是否是问题的全部根源,但我认为您需要转义通配符,否则参数化逻辑将会被混淆。
SELECT * FROM events WHERE summary ILIKE E'%%test%%' AND start_time > %(begin)s 我认为%%是正确的转义,但也可能是\%
https://stackoverflow.com/questions/3944276
复制相似问题