The following c.filtraNome(nome)
method queries the database (sqlite3), however, I'm not sure how to group each field and return the already formatted query as follows:
Nome: Fulano Silvia
Idade: 19
CPF: 00000000000
Email: [email protected]
Celular: 1131345678
Cidade: Nova Vila
UF: MT
Data do Cadastro: 2015-08-25
I tried to concatenate the strings with the +
operator and the ''.join('String')
method, but I did not succeed in any of them.
Query routine:
def filtraNome(self,nome):
self.db.cursor.execute(""" SELECT * FROM clientes WHERE nome like ? ; """,(['%' + nome + '%']))
for campo in self.db.cursor.fetchall():
self.dados = 'Nome: '.join(campo[1]).join('Idade: '.join(campo[2])).join('CPF: '.join(campo[3])).join('Email: '.join(campo[4])).join('Celular: '.join(campo[5])).join('Cidade: '.join(campo[6])).join('UF: '.join(campo[7])).join('Data do cadastro: '.join(campo[8])) #Gera um erro nesta linha.
return self.dados
The error that is being generated when using the join()
method:
self.dados = 'Nome: '.join(campo[1]).join('Idade: '.join(campo[2])).join('CPF: '.join(campo[3])).join('Email: '.join(campo[4])).join('Celular: '.join(campo[5])).join('Cidade: '.join(campo[6])).join('UF: '.join(campo[7])).join('Data do cadastro: '.join(campo[8]))
TypeError: can only join an iterable
Routine calling method of class ClienteDB
:
if __name__ == '__main__':
c = ClienteDB()
if c.cria_tabela():
print("Tabela %s criada com sucesso.", c.tb_nome)
#c.inserir_registro()
#c.listar_todos()
nome = raw_input("Informe um nome para pesquisa: ")
print(c.filtraNome(nome))
How can I concatenate the fields returned from the query in Python ?