fetchall()psycopg2返回空列表

时间:2020-08-18 04:16:46

标签: python postgresql

我正在尝试使用psycopg2进行查询。我知道以下查询在pgAdmin中查询时有效,但是由于某些原因retchall()返回空列表。

我之前在其他查询中使用了相同的格式,并且能够获取结果,所以我在询问是否存在格式问题。执行它时我没有任何错误,只是返回一个空列表。

我也在使用DictCursor,因此我可以通过以下键引用查询:https://www.psycopg.org/docs/extras.html#dictionary-like-cursor

    import db_funcs.DB as DB
    import time
    import psycopg2.extras
    import json
    import sys
    
    def route_export(stops, project_list):
        try:
            cursor, connection = DB.dbInit()
    
            dict_cur = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
    
            for project in project_list:
                drivers = []
                stops = {"stops": stops[project]}
    
                dict_cur.execute(
                    """SELECT rp.route_project_id, rp.route_name, rp.driver_id, rp.route_date,
                    d.driver_id, d.name as driver_name, d.start_location_coords, 
                    d.start_location_add, d.end_location_coords, d.end_location_add, 
                    d.shift_start, d.shift_end, d.phone_number, d.speed, d.capacity, d.types, 
                    d.breaks, d.delivery_area_id 
                    FROM route_project rp
                    JOIN driver d 
                    ON rp.driver_id = d.driver_id
                    WHERE TO_DATE(LEFT(route_date,10),'YYYY-MM-DD') >= NOW()
                    and route_name = %s """,
                    (project,),
                )
    
                rows = dict_cur.fetchall()

1 个答案:

答案 0 :(得分:0)

您可以尝试运行此命令,看看是否获得输出吗?

import db_funcs.DB as DB
import time
import psycopg2.extras
import json
import sys

def route_export(stops, project_list):
try:
    cursor, connection = DB.dbInit()

    dict_cur = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)

    for project in project_list:
        drivers = []
        project = str(project)
        stops = {"stops": stops[project]}

        q = dict_cur.execute(
            'SELECT rp.route_project_id, rp.route_name, rp.driver_id, rp.route_date,
            d.driver_id, d.name as driver_name, d.start_location_coords, 
            d.start_location_add, d.end_location_coords, d.end_location_add, 
            d.shift_start, d.shift_end, d.phone_number, d.speed, d.capacity, d.types, 
            d.breaks, d.delivery_area_id 
            FROM route_project rp
            JOIN driver d 
            ON rp.driver_id = d.driver_id
            WHERE TO_DATE(LEFT(route_date,10),"YYYY-MM-DD") >= NOW()
            and route_name = ?', [project])

        rows = q.fetchall()
相关问题