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))
How do I get a list of column names from a psycopg2 cursor?