Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cx_Oracle:Làm cách nào để nhận từng hàng dưới dạng từ điển?

Bạn có thể ghi đè rowfactory của con trỏ phương pháp. Bạn sẽ cần thực hiện việc này mỗi khi thực hiện truy vấn.

Đây là kết quả của truy vấn chuẩn, một bộ.

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

Trả lại một tuple đã đặt tên:

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')

Trả lại từ điển:

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}

Tín dụng cho 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. Checker Run

  2. Có cách nào để sử dụng Linq với Oracle không

  3. Tại sao Group By của Mysql và Group by Oracle lại khác nhau

  4. Cách gọi thủ tục có tham số ra làm kiểu bảng từ một lớp Java

  5. Đệ quy trong Oracle