To get the column names in a separate query , you can query the information_schema.columns table.
#!/usr/bin/env python3 import psycopg2 if __name__ == '__main__': DSN = 'host=YOUR_DATABASE_HOST port=YOUR_DATABASE_PORT dbname=YOUR_DATABASE_NAME user=YOUR_DATABASE_USER' column_names = [] with psycopg2.connect(DSN) as connection: with connection.cursor() as cursor: cursor.execute("select column_name from information_schema.columns where table_schema = 'YOUR_SCHEMA_NAME' and table_name='YOUR_TABLE_NAME'") column_names = [row[0] for row in cursor] print("Column names: {}\n".format(column_names))
To get the column names in the same query as the data rows , you can use the cursor description field:
#!/usr/bin/env python3 import psycopg2 if __name__ == '__main__': DSN = 'host=YOUR_DATABASE_HOST port=YOUR_DATABASE_PORT dbname=YOUR_DATABASE_NAME user=YOUR_DATABASE_USER' column_names = [] data_rows = [] with psycopg2.connect(DSN) as connection: with connection.cursor() as cursor: cursor.execute("select field1, field2, fieldn from table1") column_names = [desc[0] for desc in cursor.description] for row in cursor: data_rows.append(row) print("Column names: {}\n".format(column_names))
bitek Mar 04 '14 at 12:48 2014-03-04 12:48
source share