2012-02-10 17 views
7
dict_cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) 
dict_cur.execute("SELECT column1, column2, column3 FROM mytable") 
result = dict_cur.fetchall() 
print result[0] 
>>> {'column2':10, 'column1':12, 'column3':42} 

Làm cách nào để bảo toàn thứ tự cột mà không phân tích cú pháp SQL đã thực hiện trước? Nó hoạt động tốt với con trỏ bình thường khi danh sách được trả về, nhưng tôi cần truy cập vào các khóa từ điển và do đó cần sử dụng RealDictCursor.Cách bảo vệ thứ tự cột trong khi sử dụng psycopg2.extras.RealDictCursor

EDIT: Vâng, tôi thực sự không thể. mô tả thuộc tính của đối tượng con trỏ nên được sử dụng để lấy tên cột.

Trả lời

1

Tôi không có điều này "extras" gói, nhưng thường là một con trỏ nên có một tài sản gọi là description mà là một tuple chứa tất cả các cột theo thứ tự cùng với thêm một số thông tin như loại lĩnh vực, vv

Thử ra "print dict_cur.description" trong một vỏ trấu và xem những gì bạn nhận được.

CHỈNH SỬA: đừng bận tâm. Tôi không đọc "CHỈNH SỬA" của bạn ...

Các vấn đề liên quan