Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Output ES2 HW2 Json

Toccacieli (700 points)
6 15 22
in Es2 by (700 points)
closed by
Salve , ho usato json proprio come il libro dice di usare , prima di trasferire tutto sul file json il dizionario mi esce bene con tutto quello che  deve uscire , solo che quando  faccio la funzione finale dove prendo l'output e lo trascrivo nel file json non esce nulla , anche se ho scritto quello che dovevo scrivere .
1.1k views
closed with the note: risolto

3 Answers

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by
NON usare dumps (che torna una stringa) ma dump, che scrive in un file aperto con open.
Toccacieli (700 points)
6 15 22
by (700 points)
ok risolto , era un problema  dentro il procedimento ora con il dump funziona .
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)

Buongiorno!

Se ho ben capito il problema sta nella "trascrizione" del file in formato JSON. Bene ti riepilogo dunque tutti i passaggi da seguire affinché tu possa individuare l'errore :

  • Assicurati di aver l'input corretto prima di darlo in pasto a JSON, per fare questo posiziona una print "tattica" e controlla l'output.
  • Per salvare un file in JSON devi utilizzare in primo luogo il costrutto open() specificando il path da seguire, nel nostro caso utilizza la variabile fout, e ricordati inoltre di specificare la modalità con cui aprire tale file, nel nostro caso 'w' in quanto tale modalità ti permette di creare un file se questo non esiste già. Ti consiglio di utilizzare il costrutto with open() as f_json
  • All'interno del nostro with si tratta ora di salvare in file in JSON. Per fare questo puoi utilizzare il comando json.dump () passandogli come primo argomento il dato da salvare (stringa, dizionario, ..) e come secondo argomento dove salvarlo, nel nostro caso proprio f_json.
Una piccola accortezza: ricordati di non returnare nulla dalla funzione main in quanto il grade ti darà un errore, devi semplicemente salvare il file come ti ho appena indicato. Per maggiori informazioni ti linko la documentazione ufficiale relativa alla lettura/scrittura file:

Spero di averti aiutato,

ti auguro una buona giornata

.

Leonardo Emili

Toccacieli (700 points)
6 15 22
by (700 points)
si ho fatto tutto il print tattico mi da indietro il dizionario , ora ho usato dumps e mi esce il dizionario ma con il dump non funziona proprio
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)
Il problema è che la s in dumps sta per stringa, che non ciò che vuoi tu. Devi necessariamente utilizzare dump in questo caso
Toccacieli (700 points)
6 15 22
by (700 points)
come gia detto errore mio risolto :D grazie lo stesso
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)
Felice che tu abbia risolto  ;)
francesco.dev (33560 points)
23 51 129
by (33.6k points)

Ciao!

Sei proprio sicuro di aver usato il metodo dump??

Ti riporto la pseudo-sintassi:

with open(percorso file in uscita, in modalità scrittura) as file:
        json.dump(struttura da scrivere sul file, file)

Se così fosse, assicurati:

  1. Di aver importato la libreria json;
  2. Di avere una struttura effettivamente piena;
  3. Di aver aperto il file come ti ho descritto in precedenza;
  4. Di scrivere sul percorso giusto.

Sperando di averti aiutato,
- Francesco Pio Scognamiglio

Toccacieli (700 points)
6 15 22
by (700 points)
sisi fatto esattamente questo ma nulla solo con il dumps funziona ma esce un po male
francesco.dev (33560 points)
23 51 129
by (33.6k points)
Fammi capire precisamente il tipo di problema che nasce. Sei sicuro di trascrivere sul file il dizionario giusto??
Toccacieli (700 points)
6 15 22
by (700 points)
errore mio nel programma niente a che fare con json grazie comunque
francesco.dev (33560 points)
23 51 129
by (33.6k points)
Di niente, sempre disponibile