我有以下python代码。我得到这个错误->元组索引必须是整数,而不是str
如何将这些值传递到查询中?我还有其他的例子,这种方法非常有效,我不明白为什么它在这里失败了。
def request_events_json(uei,interval,conn):
cur = conn.cursor()
events_query ="""select e.nodeid,n.nodelabel,e.ipaddr,count(*) as total,min(e.eventcreatetime),max(e.eventcreatetime),(regexp_matches (e.eventlogmsg,E': %(.*)'))[1] as msglog
from events e, node n where e.eventuei = (%s) and e.eventcreatetime > now() - interval (%s) and n.nodeid=e.nodeid
group by n.nodelabel,e.nodeid,e.ipaddr,msglog
order by e.nodeid, count(*) desc limit 10;"""
try:
print('## Requesting events ##')
cur.execute(events_query,('uei.opennms.org/syslogd/cisco/line','5 min'))
.......
最佳答案
在我的PostgreSQL版本中,interval
后面的圆括号是禁止的。
更新:
它是regexp中的百分比符号。加倍。