Saya ingin cara umum untuk membuat label kolom langsung dari nama kolom yang dipilih, dan ingat melihat modul psycopg2 python mendukung fitur ini.
137
Dari "Programming Python" oleh Mark Lutz:
curs.execute("Select * FROM people LIMIT 0")
colnames = [desc[0] for desc in curs.description]
curs.execute("SELECT * FROM people LIMIT 0")
information_schema
.curs.execute("Select userId FROM people") colnames = [desc[0] for desc in curs.description] assert colnames == ['userid']
Hal lain yang dapat Anda lakukan adalah membuat kursor yang dapat digunakan untuk mereferensikan kolom Anda dengan namanya (itulah kebutuhan yang membuat saya menuju halaman ini sejak awal):
sumber
Untuk mendapatkan nama kolom dalam kueri yang terpisah , Anda dapat meminta tabel information_schema.columns.
Untuk mendapatkan nama kolom dalam kueri yang sama dengan baris data , Anda bisa menggunakan bidang deskripsi kursor:
sumber
Jika Anda ingin memiliki tuple obj bernama dari permintaan db Anda dapat menggunakan potongan berikut:
Ini memungkinkan Anda untuk mengakses nilai rekaman seolah-olah mereka adalah properti kelas yaitu
atau bahkan lebih pendek
sumber
Setelah mengeksekusi query SQL, tulis skrip python berikut yang ditulis dalam 2.7
sumber
Saya perhatikan bahwa Anda harus menggunakan
cursor.fetchone()
setelah permintaan untuk mendapatkan daftar kolom dicursor.description
(yaitu di[desc[0] for desc in curs.description]
)sumber
Saya juga terbiasa menghadapi masalah serupa. Saya menggunakan trik sederhana untuk menyelesaikan ini. Misalkan Anda memiliki nama kolom dalam daftar suka
Maka Anda bisa melakukan hal berikut
sumber
sumber
sumber