Python传递参数以查询错误

时间:2012-07-04 11:23:18

标签: python sql postgresql parameters

我在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'))
       .......

1 个答案:

答案 0 :(得分:1)

使用我的PostgreSQL版本禁止interval之后的圆括号。

更新

这是正则表达式中的百分号。加倍。