我正在尝试使用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()
答案 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()