python - 索引 79 处不支持的格式字符 'O' (0x4f)
问题描述
使用 Psycopg2 模块执行查询时出现以下错误。 我在 PgAdmin 4 中执行了相同的查询,它工作正常并给了我结果。当我通过 Python 执行它时发生错误。
谁能建议我如何解决这个问题?
下面是代码:
for new_ticket in zenpy_client.search(type='ticket', status='open',requester='je.rr.y@gmail.com'):
#new_ticket.assignee = modified_user
#print(new_ticket.requester.email)
psql_command=""" WITH CTE AS (select cast(origin as text) as origin, MAX(case when name like '%OUT%' THEN name else ''end) as out_ref
, MAX(case when name like '%PICK%' THEN name else ''end) as pick_ref
, MAX(case when name like '%PICK%' THEN state else ''end) as pick_state
, MAX(case when name like '%OUT%' THEN state else ''end) as out_state
from dl_odoo.stock_picking
GROUP BY origin)
select o.customer_email,o.order_number,o.order_state_1,o.order_state_2,o.order_subtotal_net_after_discount as revenue
,created_at_order,c.out_ref as reference,o.payment_method,c.pick_ref,c.pick_state,c.out_ref,c.out_state
from ol.orders o
LEFT JOIN CTE c ON c.origin=o.order_number
where
customer_email='%s' order by o.created_at_order desc limit 3
;"""
try:
s=''
print(new_ticket.requester.email)
print(psql_command)
try:
psql_cursor.execute(psql_command %new_ticket.requester.email)
except (Exception, psycopg2.Error) as error:
print ("ssss")
print (error)
解决方案
您需要转义字符串中的百分号。Python 将它们解释为类似于 printf 的格式说明符。用 %% 替换每个 % ,它应该可以工作。
推荐阅读
- typescript - 打字稿泛型,泛型中的新关键字扩展
- powershell - Windows Server 2012 R2:通过 PowerShell 从 Microsoft Update 在线检查更新
- javascript - 如何将 git-hooks 与电子应用程序连接起来
- python - Pandas 重新索引以填充日期索引
- python - 在 python 代码中获取属性错误
- c# - 检查文件是否存在于 FileInfo[]
- c++-winrt - Windows.UI.Xaml.Application 与 DependencyObject
- reactjs - nodejs如何在前端构建webserver以进行反应和角度的框架工作
- sql - PostGIS 查询从多边形表中选择所有多边形,该多边形表具有相交的几何图形,在传递的地理坐标列表中具有一个或多个点
- c# - 卸载完成后如何在 Wix 中执行自定义操作