Eu gostaria de uma maneira geral de gerar rótulos de coluna diretamente dos nomes de coluna selecionados e lembre-se de ver que o módulo psycopg2 do python suporta esse recurso.
137
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']
Outra coisa que você pode fazer é criar um cursor com o qual você poderá referenciar suas colunas por seus nomes (essa é uma necessidade que me levou a esta página em primeiro lugar):
fonte
Para obter os nomes das colunas em uma consulta separada , você pode consultar a tabela information_schema.columns.
Para obter nomes de colunas na mesma consulta que as linhas de dados , você pode usar o campo de descrição do cursor:
fonte
Se você deseja ter um objeto de tupla nomeado na consulta db, pode usar o seguinte trecho:
Isso permite que você acesse valores de registro como se fossem propriedades de classe, ou seja,
ou ainda mais curto
fonte
Após executar a consulta SQL, escreva o seguinte script python escrito em 2.7
fonte
Notei que você deve usar
cursor.fetchone()
após a consulta para obter a lista de colunas emcursor.description
(ou seja, em[desc[0] for desc in curs.description]
)fonte
Eu também costumava enfrentar problemas semelhantes. Eu uso um truque simples para resolver isso. Suponha que você tenha nomes de colunas em uma lista como
Então você pode fazer o seguinte
fonte
fonte
fonte