[Python] Visualizzare una struttura dati annidata, anche con molti elementi

Luca Bacchi bacchilu a gmail.com
Mer 31 Mar 2021 16:08:54 CEST


import pprint

pprint.pprint(data)

Il giorno mar 30 mar 2021 alle ore 17:35 Yuri <yurj a alfa.it> ha scritto:

> Salve,
>
>   mi piacerebbe qualcosa di interattivo, attualmente uso già prettyprint
> e pp in pdb. I dati sono nativi, tranne una classe che ho creato. L'idea
> era quella di avere uno strumento che permetta di "aprire/chiudere" i
> nodi della struttura dati, ed esplorarla.
>
> In effetti, per ora, potrei fare un dump in json (rendendo la mia classe
> serializzabile in JSON usando https://stackoverflow.com/a/41200652) e
> utilizzare un editor di testo con supporto JSON. Grazie del suggerimento!
>
> def serialize(obj):
>      """JSON serializer for objects not serializable by default json
> code"""
>
>      if isinstance(obj, Arianna):
>          return obj.titles
>
> (Pdb) !w = json.dumps(ead.archive, sort_keys=True, indent=2,
> default=serialize)
> (Pdb) !a = open('/tmp/orto.json', 'w')
> (Pdb) !a.write(w)
> 86489
> (Pdb) !a.close()
>
>
> Il 30/03/21 15:26, a.cavallo a cavallinux.eu ha scritto:
> > Se i dati sono nativi (liste, tuple, ineri, float etc.) puoi usare:
> >    print(json.dumps(oggetto, sort_keys=True, indent=2))
> >
> > On Tuesday, March 30, 2021 04:27 EDT, Yuri <yurj a alfa.it> wrote:
> >
> >> Salve,
> >>
> >>    avrei bisogno, ai fini di debug/controllo, poter visualizzare una
> >> struttura dati con molti elementi. Tipicamente sono dizionari e liste
> >> annidate, alcune con pochi elementi, altri con molti, fino a 5/6 livelli
> >> di annidamento. Alcune liste possono essere molto lunghe con centinaia o
> >> migliaia di elementi. La classica soluzione con i [+] per espandere i
> >> vari nodi della struttura va bene.
> >>
> >> Ho visto che pudb ha uno strumento simile (*) ma la finestra è piccola e
> >> dopo un po' diventa complesso navigare la struttura. Va bene sia uno
> >> strumento a caratteri che uno grafico, con preferenza a caratteri se
> >> possibile.
> >>
> >>
> >> (*) interessante anche perché permette di scegliere la funzione che
> >> rappresenta l'oggetto. Su pudb:
> >> http://heather.cs.ucdavis.edu/~matloff/pudb.html
> >>
> >> _______________________________________________
> >> Python mailing list
> >> Python a lists.python.it
> >> https://lists.python.it/mailman/listinfo/python
> > _______________________________________________
> > Python mailing list
> > Python a lists.python.it
> > https://lists.python.it/mailman/listinfo/python
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20210331/d47a2f05/attachment.html>


Maggiori informazioni sulla lista Python