[Python] Visualizzare una struttura dati annidata, anche con molti elementi
Yuri
yurj a alfa.it
Mar 30 Mar 2021 17:35:19 CEST
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
Maggiori informazioni sulla lista
Python