Forum >> Programmazione Python >> GUI >> Problema a salvare un file di interi

Pagina: 1

Salve ho il seguente problema: non riesco a creare un file che salvi una lista

di interi.

app.values = app.freqa + app.mixa + app.freqb + app.mixb
        if not self._model:
            name = simpledialog.askstring('Nome modello', 'inserire il nome da assegnare', parent=self)
            if not name:
                return
            self._model = os.path.join(self._cache, name + '.json')
        if os.path.exists(self._model):
            msg = 'Nome modello già in uso'
            messagebox.showerror('Duplicazione', msg, parent=self)
            return
        for k in self._scales.keys():
            sets = []
            for i in range(len(self._scalesk)):
                sets.append(self._scalesk.get())
            app.valuesk = sets
        try:
            with open(self._model, 'w') as f:
                json.dump(app.values, f)
        except OSError as e:
            msg = 'Errore salvataggio dati mixer:\n\n' + repr(e)
            messagebox.showerror('Errore I/O', msg, parent=self)
Aiutatemi a capire cos' è andato storto per favore. :angry:
Ciao caro, dunque proviamo a vedere qualche punto insieme.

Secondo me qui ci sono 3 cose da verificare prima di tutto:

-- Tipi dei dati json.dump vuole roba serializzabile: la tua app.values è davvero lista di int? (prova: print(type(app.values), app.values[:5]))

-- Refusi/indici in quel blocco ci sono self._scalesk e app.valuesk: volevi dire self._scalesk e magari salvare in una struttura per chiave? Stai chiamando .get() sul widget giusto o sulla lista?

-- Percorso file la cartella self._cache esiste quando apri il file? (se no: os.makedirs(self._cache, exist_ok=True))Se vuoi testare l’I/O isolato (senza Tk/interfaccia), prova solo questo micro-test:
import json

open("test.json","w").write(json.dumps([1,2,3]))

Fai sapere se trovi la strada.

Cya
Daniele aka Palmux said @ 2025-10-24 11:01:08:
import json

open("test.json","w").write(json.dumps([1,2,3]))
Il test ha funzionato quindi è un problema di chiavi ma non capisco dove.


Ti invio il sorgente completo così capisci.

get() è su lista a quanto pare.




--- Ultima modifica di fabio75 in data 2025-10-24 21:18:06 ---

--- Ultima modifica di fabio75 in data 2025-10-24 21:18:50 ---
Allegati


Pagina: 1



Esegui il login per scrivere una risposta.