Perl для Python и cx_Oracle, fetchrow_array

Есть ли эквивалент perl fetchrow_array при подключении к Oracle с использованием Python?

По сути, я пытаюсь перевести следующий код perl в python для использования с cx_Oracle ... Мне нужно создать словари с ключами вместо хеша, я предполагаю (я вообще не знаю perl), но сначала я хотел бы вернуть результат в виде массива, чтобы я мог объединить столбцы.

# read the data and place into a species hash (sphash) and a data hash (tmphash)
my (@lnarr, %sphash, %tmphash, $tmpln, $tmpsel, $x, $datetime) ;
while (@lnarr = $csr->fetchrow_array) {
 # $line =~ s/\s//g ;  #remove spaces and newline character
 # @lnarr = split /,/, $line ;
  $datetime = $lnarr[4].'-'.$lnarr[5] ;
  $tmpln = join '_', $lnarr[8], $lnarr[9] ;
  $sphash{$lnarr[7]} = 'x';
  $tmphash{$lnarr[0].'_'.$lnarr[1].'_'.$lnarr[2].'_'.$lnarr[3].'_'.$datetime.'_'.$lnarr[6]}{$lnarr[7]} .= $tmpln ;
}

person Victoria Price    schedule 06.12.2012    source источник
comment
По совершенно не связанной теме последнюю строку можно сжать до $tmphash{join '_', @lnarr[0..3], $datetime, $lnarr[6]}{$lnarr[7]} .= $tmpln ;   -  person amon    schedule 06.12.2012


Ответы (1)


cx_Oracle соответствует Python DB API 2.0. Поэтому он должен поддерживать cursor.fetchone(), что должно быть точным эквивалентом < a href = "http://www.felixgers.de/teaching/perl/cpan_DBI.html#fetchrow_array" rel = "nofollow"> Perl fetchrow_array().

Другими словами: cx_Oracle - это просто драйвер базы данных, API, с которым вы взаимодействуете, - это Python DB API.

http://www.orafaq.com/wiki/Python должен помочь вам начать использовать cx_Oracle.

person Lukas Graf    schedule 06.12.2012