1. Win 7 64X
2. Python 3.8
3 Pip 20.1.1
Имеем:
1. Простенький файл csv c двумя столбцами.
2. Подключение к СУБД Oracle с SQL запросом внутри скрипта.
Необходимо:
Сравнить номера комнат из первого столбца csv файла с номерами комнат 1 столбца полученных данных SQL запроса. Вывести на печать совпадения.
Проблема в том, что при сравнении учитывается только последняя строка из списка csv. Сам код привожу ниже:
import csv
with open('arr.csv') as f:
reader=(csv.reader(f, delimiter=' '))
for room,sn in reader:
print(room, sn)
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('172.17.115.91', '1521', service_name='training)
conn = cx_Oracle.connect(user='user', password='pass, dsn=dsn_tns)
print('Номера, попавшие в список:')
d = conn.cursor()
d.execute("""select r.room,
case
r.fo_status when 'OCC' then 'ЗАНЯТ'
when 'VAC' then 'СВОБОДЕН'
end fo,
case
r.room_status
when 'DI' then 'Clean'
when 'CL' then 'Dirty'
when 'IP' then 'Inspected'
when 'OS' then 'Out of service'
when 'OO' then 'Out of order'
end status
from opera.room_view r""")
for row in d:
if row[0] in room:
print (row[0], ';', row[1], ';', row[2])
conn.close()
Результат:
room sn
K314 SB1A040392
A301 SB1A026556
A201 SB24087472
K313 SB24069183
Номера, попавшие в список:
K313 ; ЗАНЯТ ; Clean
Желаемый результат:
room sn
K314 SB1A040392
A301 SB1A026556
A201 SB24087472
K313 SB24069183
Номера, попавшие в список:
K314 ; СВОБОДЕН ; Clean
A301 ; ЗАНЯТ ; Dirty
A201 ; ЗАНЯТ ; Dirty
K313 ; ЗАНЯТ ; Clean
2. Python 3.8
3 Pip 20.1.1
Имеем:
1. Простенький файл csv c двумя столбцами.
2. Подключение к СУБД Oracle с SQL запросом внутри скрипта.
Необходимо:
Сравнить номера комнат из первого столбца csv файла с номерами комнат 1 столбца полученных данных SQL запроса. Вывести на печать совпадения.
Проблема в том, что при сравнении учитывается только последняя строка из списка csv. Сам код привожу ниже:
import csv
with open('arr.csv') as f:
reader=(csv.reader(f, delimiter=' '))
for room,sn in reader:
print(room, sn)
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('172.17.115.91', '1521', service_name='training)
conn = cx_Oracle.connect(user='user', password='pass, dsn=dsn_tns)
print('Номера, попавшие в список:')
d = conn.cursor()
d.execute("""select r.room,
case
r.fo_status when 'OCC' then 'ЗАНЯТ'
when 'VAC' then 'СВОБОДЕН'
end fo,
case
r.room_status
when 'DI' then 'Clean'
when 'CL' then 'Dirty'
when 'IP' then 'Inspected'
when 'OS' then 'Out of service'
when 'OO' then 'Out of order'
end status
from opera.room_view r""")
for row in d:
if row[0] in room:
print (row[0], ';', row[1], ';', row[2])
conn.close()
Результат:
room sn
K314 SB1A040392
A301 SB1A026556
A201 SB24087472
K313 SB24069183
Номера, попавшие в список:
K313 ; ЗАНЯТ ; Clean
Желаемый результат:
room sn
K314 SB1A040392
A301 SB1A026556
A201 SB24087472
K313 SB24069183
Номера, попавшие в список:
K314 ; СВОБОДЕН ; Clean
A301 ; ЗАНЯТ ; Dirty
A201 ; ЗАНЯТ ; Dirty
K313 ; ЗАНЯТ ; Clean
Последнее редактирование: