Topic: Come salvare un dizionario  (Letto 110 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline N3v3

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Come salvare un dizionario
« il: Novembre 03, 2020, 07:42 »
Ciao ragazzi. Sto realizzando un programma che una volta aperto mi mostri delle parole e mi chieda di inserire la traduzione in un'altra lingua. Le parole sono salvate in un dizionario (come chiavi) e le traduzioni anche (come valori). Il problema è questo: vorrei che le parole venissero salvate in un file esterno, o comunque in un modo che mi permetta di usare una funzione "Aggiungi" senza dover mettere mano sul sorgente. Sapreste aiutarmi? Un semplice file di testo non penso vada bene

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 351
  • Punti reputazione: 0
    • Mostra profilo
Re:Come salvare un dizionario
« Risposta #1 il: Novembre 03, 2020, 09:48 »
Un modo "semplice" ed abbastanza elastico potrebbe essere mediante l'utilizzo di json, qua la documentazione, esempio di scrittura in un file :
>>> import json
>>> data = {'print': 'Stampa',
'import': 'importa',
'from': 'da'
}
>>> o_file = 'data.json'
>>> with open(o_file, 'w') as f:
json.dump(data, f)

"json.dump(...) provvederà a scrivere il dizionario nel file "data.json", per ricaricare i dati, si apre il file in lettura e si utilizza la funzione "load()" di json
>>> i_file = 'data.json'
>>> with open(i_file, 'r') as f:
new_data = json.load(f)


>>> new_data
{'print': 'Stampa', 'import': 'importa', 'from': 'da'}
>>>

Ovviamente vi sono altri modi, segnalo pickle, più "capace" riguardo oggetti python ma meno elastico perché molto legato alla versione di python in uso (possono esserci incompatibilità tra versioni differenti).
Ovviamente, vi sono poi molteplici altre modalità possibili per archiviare in file di testo.

Offline N3v3

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:Come salvare un dizionario
« Risposta #2 il: Novembre 03, 2020, 10:32 »
Perfetto, proprio quello che stavo cercando. Grazie infinite  :ok: :ok: