Psycopg2 मॉड्यूल का उपयोग करके एक क्वेरी निष्पादित करते समय मुझे नीचे त्रुटि मिल रही है। मैंने उसी क्वेरी को PgAdmin 4 में निष्पादित किया है, और यह ठीक काम कर रही है और मुझे परिणाम दे रही है। त्रुटि तब होती है जब मैं इसे पायथन के माध्यम से निष्पादित करता हूं।

क्या कोई मुझे सुझाव दे सकता है कि इसे कैसे हल किया जाए?

नीचे कोड है:

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)
0
Linu 7 अगस्त 2019, 17:47

1 उत्तर

सबसे बढ़िया उत्तर

आपको स्ट्रिंग में प्रतिशत चिह्नों से बचना होगा। पायथन उनकी व्याख्या कर रहा है जैसे कि वे प्रिंटफ-जैसे प्रारूप विनिर्देशक हैं। प्रत्येक % को %% से बदलें और इसे काम करना चाहिए।

1
Chris 7 अगस्त 2019, 17:55