Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

cx_Oracle:Bagaimana saya bisa menerima setiap baris sebagai kamus?

Anda dapat mengganti rowfactory kursor metode. Anda perlu melakukan ini setiap kali melakukan kueri.

Inilah hasil kueri standar, sebuah tuple.

curs.execute('select * from foo')
curs.fetchone()
    (33, 'blue')

Mengembalikan tuple bernama:

def makeNamedTupleFactory(cursor):
    columnNames = [d[0].lower() for d in cursor.description]
    import collections
    Row = collections.namedtuple('Row', columnNames)
    return Row

curs.rowfactory = makeNamedTupleFactory(curs)
curs.fetchone()
    Row(x=33, y='blue')

Mengembalikan kamus:

def makeDictFactory(cursor):
    columnNames = [d[0] for d in cursor.description]
    def createRow(*args):
        return dict(zip(columnNames, args))
    return createRow

curs.rowfactory = makeDictFactory(curs)
curs.fetchone()
    {'Y': 'brown', 'X': 1}

Penghargaan untuk Amaury Forgeot d'Arc:http://sourceforge.net/p/cx-Oracle/mailman/message/27145597



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik membagi string csv di Oracle 9i

  2. Pivot dinamis di Oracle sql - Prosedur

  3. Masukkan data dalam jumlah besar secara efisien dengan SQL

  4. ORACLE SQL:Dapatkan semua bilangan bulat di antara dua angka

  5. Bagaimana cara Memilih substring di Oracle SQL hingga karakter tertentu?