Форум сайта python.su
0
Суть задачи. В БД находится список заказов и время регистрации одним сервером по ним.
В лог-файле содержится тот же список заказов и время регистрации другим сервером по ним.
Мне нужно вывести все те номера заказов, что есть по селекту из БД и время по ним из лога.
Мой код возвращает только последний номер заказа и время по нему. Но по селекту возвращается рандомное количество строк. Понимаю, что нужно пронумеровать кол-во заказов и дальше сделать цикл по поиску в логе. Но не совсем понимаю как. Помогите, пожалуйста.
con = fdb.connect(host='host', database='database', user='USER', password='pass' ) cursor = con.cursor() cursor.execute("""Select OrderID, Reg_time from orders where reg_time between current_DATE and current_date+1""") for o_id, r_time in cursor.fetchall(): print (o_id, r_time) with open('orders.LOG', 'r') as f: if str(o_id) in line: r_time_l1= (int(line[20:23:1])) r_time_l2= (int(line[97:100:1])) print (o_id, r_time_l1, r_time_l2,) cursor.close() con.close()
Офлайн
568
polinaruruа что такое вообще current_DATE?
cursor.execute(“”“Select OrderID, Reg_time from orders where reg_time between current_DATE and current_date+1”“”)
Офлайн
61
con = fdb.connect(host='host', database='database', user='USER', password='pass' ) cursor = con.cursor() cursor.execute("""Select OrderID, Reg_time from orders where reg_time between current_DATE and current_date+1""") res = {} for o_id, r_time in cursor.fetchall(): res[o_id] = r_time print(res) with open('orders.LOG', 'r') as f: if str(o_id) in line: r_time_l1= (int(line[20:23:1])) r_time_l2= (int(line[97:100:1])) print (o_id, r_time_l1, r_time_l2,) cursor.close() con.close()
Офлайн
0
FishHook
это текущая дата в БД firebird. что-то типа аналога getdate в t-sql
ZerG. спасибо, добрый человек. только вот этот кусок все равно выдает только один заказ…
with open('orders.LOG', 'r') as f:
if str(o_id) in line:
r_time_l1= (int(line[20:23:1]))
r_time_l2= (int(line[97:100:1]))
print (o_id, r_time_l1, r_time_l2,)Отредактировано polinaruru (Март 23, 2016 14:58:32)
Офлайн
61
Ну так вы посмотрите что я исправил и сделайте так же!
Что же вы хотите если вы значение одной и той же переменной в цикле каждый раз переназначате? Оно вам и выдает всегда последний результат.
a = 1 a = 2 a = 3 print a 3
Отредактировано ZerG (Март 23, 2016 16:30:46)
Офлайн