[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