Python错误:在字符串格式化过程中并不是所有参数都被转换

2024-05-29 04:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行下面的代码段以在OpenERP中打印jasper报告

prev_open_fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('state', '=', 'draft'), ('date_start', '<', fiscal_date_start)]) # prev_open_fiscalyear_ids gets a list of numbers from this code
cr.execute("SELECT id \
                        FROM account_period \
                        WHERE fiscalyear_id IN %s" , (tuple(prev_open_fiscalyear_ids)))
prev_period_ids = filter(None, map(lambda x:x[0], cr.fetchall()))

其中cr是指向PostgreSQLdb的数据库游标,我得到以下错误:

Report Error from Client

服务器日志是

^{pr2}$

与查询相关联的问题是什么


Tags: idobjidssearchdate代码段报告open
1条回答
网友
1楼 · 发布于 2024-05-29 04:08:33

当前,tuple(prev_open_fiscalyear_ids)被解释为查询中要替换的参数列表。这不是你的意思,你想要你的元组来代替单个参数:

cr.execute(query, (tuple(prev_open_fiscalyear_ids),))

除非我漏掉了什么东西,否则这也会有用的:

^{pr2}$

结尾的逗号是因为(x)总是与x相同,而{}是一个具有单个元素的元组。在

相关问题 更多 >

    热门问题