''' Esempio di generazione di un dizionario e suo salvataggio come file JSON ''' import json import random def genera_diz(N): '''Genero a caso un dizionario lettera:insieme di interi ''' lettere = 'SEAGASFGATEHT' # lettere disponibili diz = {} for i in range(N): # estraggo una lettera a caso l = lettere[random.randint(0,len(lettere)-1)] # genero un valore intero a caso tra 2 e 20 compresi v = random.randint(2, 20) if l in diz: diz[l].add(v) # se presente aggiungo il valore else: diz[l] = {v} # altrimenti creo un set con un solo valore # dato che in JSON i set non sono serializzabili li converto il liste return { k: list(v) for k,v in diz.items() } def leggi_diz(filename): '''Leggo il file JSON e ritrasform le liste in set ''' with open(filename) as f: diz = json.load(f) # riottengo il dizionario di set dal dizionario di liste return { k: set(v) for k,v in diz.items() } if __name__ == '__main__': # genero a caso un diz di 2000 valori with open('dizio.json', mode='w') as f: diz = genera_diz(2000) json.dump(diz, f, indent=3) # lo rileggo e lo stampo print(leggi_diz('dizio.json'))