[Python-es] Lio con lista que contiene diccionarios
Chema Cortes
pych3m4 en gmail.com
Jue Ago 13 04:40:10 EDT 2020
El jue., 13 ago. 2020 a las 8:59, Victor Ramirez (<virako.9 en gmail.com>)
escribió:
> Hola Javier,
>
> Una opción interesante podría ser crear una clase para esos datos y luego
> imprimir con el formato que quieras:
>
> class Banco:
> def __init__(self, element):
> self.nombre = element.get('nombre')
> self.isbn = element.get('ISBN')
> self.valor_raspado = element.get('valor_raspado')
> def __str__(self):
> return "{} - {}".format(self.nombre, self.isbn)
>
> lista_bancos = []
> for element in fondos_coleccion:
> banco = Banco(element)
> lista_bancos.append(banco)
> # Con el objeto banco podemos imprimir lo que queramos de forma
> sencilla
> print(banco) # nos imprime el resultado de la función __str__
> print(banco.isbn) # imprimimos solo los isbn
>
> Si es solo para tratar los datos esos y no tiene pensamiento de crecer,
> igual no tiene sentido, pero si vas a trabajar bastante con los datos y a
> futuro puede que crezca, esta opción podría ser interesante.
>
>
Una mejor alternativa sería usar *dataclasses:*
*@dataclassclass Coleccion: nombre: str isbn: str valor: float *
* def __str__(self): return f"{self.nombre[:25]:25} -
{self.isbn}"*
coleccion = [Coleccion(*d.values()) for d in fondos_coleccion]
for col in coleccion:
print(col)
Resultado:
Bankinter Indice Japon, F - ES0114104039
BankinterTecnología R FI - ES0114797030
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
https://blog.ch3m4.org
Buscador Python Hispano: http://busca.ch3m4.org
<https://blog.ch3m4.org/pages/busqueda-python-es/>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200813/ea64ccd6/attachment.html>
Más información sobre la lista de distribución Python-es