Найти - Пользователи
Полная версия: как сделать цикл по полю из полученного массива
Начало » Python для новичков » как сделать цикл по полю из полученного массива
1
polinaruru


Суть задачи. В БД находится список заказов и время регистрации одним сервером по ним.
В лог-файле содержится тот же список заказов и время регистрации другим сервером по ним.

Мне нужно вывести все те номера заказов, что есть по селекту из БД и время по ним из лога.

Мой код возвращает только последний номер заказа и время по нему. Но по селекту возвращается рандомное количество строк. Понимаю, что нужно пронумеровать кол-во заказов и дальше сделать цикл по поиску в логе. Но не совсем понимаю как. Помогите, пожалуйста.

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()
FishHook
polinaruru
cursor.execute(“”“Select OrderID, Reg_time from orders where reg_time between current_DATE and current_date+1”“”)
а что такое вообще current_DATE?
ZerG
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()
polinaruru
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,)

ZerG
Ну так вы посмотрите что я исправил и сделайте так же!
Что же вы хотите если вы значение одной и той же переменной в цикле каждый раз переназначате? Оно вам и выдает всегда последний результат.

a = 1
a = 2
a = 3
print a
3
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB