Je voudrais un moyen général de générer des étiquettes de colonne directement à partir des noms de colonne sélectionnés, et je me souviens avoir vu que le module psycopg2 de python prend en charge cette fonctionnalité.
137
Extrait de "Programming Python" de 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']
Une autre chose que vous pouvez faire est de créer un curseur avec lequel vous pourrez référencer vos colonnes par leurs noms (c'est un besoin qui m'a conduit à cette page en premier lieu):
la source
Pour obtenir les noms de colonne dans une requête distincte , vous pouvez interroger la table information_schema.columns.
Pour obtenir les noms de colonnes dans la même requête que les lignes de données , vous pouvez utiliser le champ de description du curseur:
la source
Si vous souhaitez avoir un tuple obj nommé à partir de la requête db, vous pouvez utiliser l'extrait de code suivant:
Cela vous permet d'accéder aux valeurs d'enregistrement comme s'il s'agissait de propriétés de classe ie
ou même plus court
la source
Après avoir exécuté une requête SQL, écrivez en suivant le script python écrit en 2.7
la source
J'ai remarqué que vous devez utiliser
cursor.fetchone()
après la requête pour obtenir la liste des colonnes danscursor.description
(c'est-à-dire dans[desc[0] for desc in curs.description]
)la source
J'avais également l'habitude de faire face à un problème similaire. J'utilise une astuce simple pour résoudre ce problème. Supposons que vous ayez des noms de colonnes dans une liste comme
Ensuite, vous pouvez suivre
la source
la source
la source