[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