<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ JSON - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ JSON - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 06 Oct 2026 06:06:15 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/tag/json/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Leggere File JSON in Python  – Come Caricare un JSON da un File e Analizzare i Dump ]]>
                </title>
                <description>
                    <![CDATA[ Se vuoi imparare a lavorare con i file JSON in Python, allora questo articolo fa per te. Imparerai:  * Perché il formato JSON è così importante.  * La sua struttura base e i tipi di dato.  * Come JSON e i dizionari Python lavorano insieme in Python. ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/leggere-file-json-in-python-come-caricare-un-json-da-un-file-e-analizzare-i-dump/</link>
                <guid isPermaLink="false">631b4b279a423c074eb483d6</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JSON ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Roberto Pauletto ]]>
                </dc:creator>
                <pubDate>Fri, 16 Sep 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/09/Read-JSON-image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/python-read-json-file-how-to-load-json-from-a-file-and-parse-dumps/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Python Read JSON File – How to Load JSON from a File and Parse Dumps</a>
      </p><p>Se vuoi imparare a lavorare con i file JSON in Python, allora questo articolo fa per te.</p><p><strong>Imparerai<strong>:</strong></strong></p><ul><li>Perché il formato JSON è così importante.</li><li>La sua struttura base e i tipi di dato.</li><li>Come JSON e i dizionari Python lavorano insieme in Python.</li><li>Come lavorare con il modulo integrato di Python <code>json</code>.</li><li>Come convertire le stringhe JSON in oggetti Python e viceversa.</li><li>Come usare <code>loads()</code> e <code>dumps()</code></li><li>Come indentare le stringhe JSON automaticamente.</li><li>Come leggere i file JSON in Python usando <code>load()</code></li><li>Come scrivere file JSON in Python usando <code>dump()</code></li><li>E altro ancora!</li></ul><p>Pronto? Iniziamo! ✨</p><h2 id="-introduzione-cos-json"><strong><strong>🔹 Introdu</strong>z<strong>ion</strong>e<strong>: </strong>cos'è<strong> JSON?</strong></strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-98.png" class="kg-image" alt="image-98" width="600" height="400" loading="lazy"></figure><p>Il formato JSON era originariamente ispirato alla sintassi di JavaScript (un linguaggio di programmazione usato per lo sviluppo web). In seguito, è diventato un <strong>formato dati indipendente dal linguaggio</strong> e la maggior parte dei linguaggi di programmazione usati oggi possono generare e leggere JSON.</p><h3 id="importanza-e-casi-di-utilizzo-di-json"><strong>Importanza e Casi di Utilizzo di <strong>JSON</strong></strong></h3><p>JSON è fondamentalmente un formato utilizzato per memorizzare o rappresentare i dati. I suoi casi d'uso comuni includono lo sviluppo web e i file di configurazione.</p><p>Vediamo perché:</p><ul><li><strong>Sviluppo Web<strong>:</strong></strong> JSON è comunemente usato nelle applicazioni web per inviare dati dal server al client e viceversa.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-65.png" class="kg-image" alt="image-65" width="600" height="400" loading="lazy"></figure><ul><li><strong>File di configurazione:</strong> JSON viene anche utilizzato per memorizzare configurazioni e impostazioni. Ad esempio, per creare una <a href="https://developer.chrome.com/apps/first_app#one">App Google Chrome</a>, è necessario includere un file JSON chiamato <code>manifest.json</code> per specificare il nome dell'app, la sua descrizione, la versione corrente e altre proprietà e impostazioni.</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-99.png" class="kg-image" alt="image-99" width="600" height="400" loading="lazy"></figure><h2 id="-struttura-e-formato-di-json"><strong><strong>🔸 </strong>Struttura e Formato di <strong>JSON</strong></strong></h2><p>Ora che sai per cosa viene usato il formato JSON, esaminiamo la sua struttura base con un esempio che rappresenta i dati dell'ordinazione di una pizza:</p><figure class="kg-card kg-code-card"><pre><code class="language-json">{ 
	"taglia": "media",
	"prezzo": 15.67,
	"condimenti": ["funghi", "salame", "basilico"],
	"formaggio_extra": false,
	"consegna": true,
	"cliente": {
		"nome": "Jane Doe",
		"telefono": null,
		"email": "janedoe@email.com"
	}
}</code></pre><figcaption>Esempio di file .json</figcaption></figure><p>Queste sono le caratteristiche principali del formato JSON:</p><ul><li>C'è una sequenza di coppie chiave-valore racchiusa tra parentesi graffe <code>{}</code>.</li><li>Ogni chiave viene associata a un particolare valore usando questo formato:</li></ul><pre><code>"chiave": &lt;valore&gt; </code></pre><p>💡 <strong>Suggerimento<strong>:</strong></strong> i valori che richiedono l'uso delle virgolette devono essere racchiusi tra virgolette doppie.</p><ul><li>Le coppie chiave-valore sono separate da una virgola. Solo l'ultima coppia non è seguita da una virgola.</li></ul><pre><code class="language-json">{
	"taglia": "media", # Virgola!
	"prezzo": 15.67
}</code></pre><p>💡 <strong>Suggerimento<strong>:</strong></strong> tipicamente JSON viene formattato con diversi livelli di indentazione per facilitare la lettura dei dati. In questo articolo imparerai come aggiungere automaticamente l'indentazione con Python.</p><h3 id="tipi-di-dato-json-chiavi-e-valori"><strong>Tipi di Dato <strong>JSON: </strong>Chiavi e Valori</strong></h3><p>I file JSON hanno regole specifiche che determinano quali tipi di dato sono validi per chiavi e valori.</p><ul><li>Le <strong>chiavi</strong> devono essere stringhe.</li><li>I <strong>valori</strong> possono essere stringhe, numeri, array, valori booleani (<code>true</code>/ <code>false</code>), <code>null</code>, oppure un oggetto JSON.</li></ul><p>Secondo la <a href="https://docs.python.org/3/library/json.html#json.dumps">documentazione di Python</a>:</p><blockquote>Le chiavi nelle coppie chiave-valore di JSON sono sempre di tipo <a href="https://docs.python.org/3/library/stdtypes.html#str"><code></code></a><code><a href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>. Quando un dizionario viene convertito in JSON, tutte le chiavi del dizionario sono forzate come stringhe.</blockquote><h3 id="guida-di-stile">Guida di Stile</h3><p>Secondo la <a href="https://google.github.io/styleguide/jsoncstyleguide.xml">Guida di Stile JSON di Google</a>:</p><ul><li>Scegli sempre nomi significativi.</li><li>Il tipo array dovrebbe avere il nome della chiave al plurale. Tutti gli altri nomi di chiave dovrebbero essere al singolare. Ad esempio usare <code>"ordinazioni"</code> invece di <code>"ordinazione"</code> se il valore corrispondente è un array.</li><li>Non ci dovrebbero essere commenti in oggetti JSON.</li></ul><h2 id="-json-vs-dizionari-python"><strong><strong>🔹 JSON </strong>vs Dizionari <strong>Python </strong></strong></h2><p>JSON e i dizionari potrebbero sembrare sulle prime molto simili (visivamente), ma in realtà sono piuttosto diversi. Vediamo come sono "connessi" e come si completano a vicenda rendendo Python un potente strumento per lavorare con i file JSON.</p><p>JSON è un formato di file utilizzato per rappresentare e conservare dati mentre un dizionario Python è l'effettiva struttura dati (oggetto) che viene mantenuta in memoria mentre un programma Python è in esecuzione.</p><h3 id="come-lavorano-insieme-json-e-i-dizionari-python"><strong>Come Lavorano Insieme JSON e i Dizionari Python</strong></h3><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-100.png" class="kg-image" alt="image-100" width="600" height="400" loading="lazy"></figure><p>Quando lavoriamo con i file JSON in Python, non è possibile semplicemente leggerli e utilizzarne direttamente i dati in un programma. Questo perché l'intero file sarebbe rappresentato come una singola stringa e non sarebbe possibile accedere singolarmente alle coppie di chiave-valore.</p><p>A meno che...</p><p>Non usiamo le coppie di chiave-valore del file JSON per creare un dizionario Python da poter utilizzare in un programma per leggere i dati, utilizzarli e modificarli (se necessario).</p><p>Questa è la connessione principale tra JSON e i dizionari Python. JSON è la rappresentazione stringa dei dati e i dizionari sono l'effettiva struttura dati in memoria creata quando il programma è in esecuzione.</p><p>Ora che conosciamo di più il formato JSON, immergiamoci negli aspetti pratici che riguardano l'utilizzo di JSON in Python.</p><h2 id="-il-modulo-json"><strong><strong>🔸 </strong>Il Modulo JSON</strong></h2><p>Fortunatamente, Python è dotato di un modulo incorporato chiamato <code>json</code>. È installato automaticamente quando si installa Python e include funzioni per aiutare a lavorare con file JSON e stringhe.</p><p>Useremo questo modulo negli esempi che seguono.</p><h3 id="come-importare-il-modulo-json"><strong>Come Importare il Modulo JSON</strong></h3><p>Per usare <code>json</code> in un programma, occorre scrivere un'istruzione di importazione all'inizio del file.</p><p>In questo modo:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-73.png" class="kg-image" alt="image-73" width="600" height="400" loading="lazy"></figure><p>Con questa riga, avremo l'accesso alle funzioni definite nel modulo. Ne useremo svariate negli esempi.</p><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> se scrivi questa istruzione di importazione dovrai usare questa sintassi per chiamare una funzione definita nel modulo <code>json</code>:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json.png" class="kg-image" alt="json" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json.png 1000w, https://www.freecodecamp.org/italian/news/content/images/size/w1600/2022/09/json.png 1600w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json.png 2087w" sizes="(min-width: 1200px) 1200px" width="2000" height="631" loading="lazy"></figure><h2 id="-python-e-le-stringhe-json"><strong><strong>🔹 Python </strong>e le Stringhe JSON</strong></h2><p>Per illustrare come lavorano alcune delle funzioni più importanti del modulo <code>json</code>, utilizzeremo una stringa multi-riga con formato JSON.</p><h3 id="stringa-json"><strong>Stringa <strong>JSON</strong></strong></h3><p>In particolare, useremo questa stringa negli esempi. È semplicemente una normale stringa Python multi-riga che segue il formato JSON.</p><figure class="kg-card kg-code-card"><pre><code class="language-python">dati_JSON =  """
{
	"taglia": "Media",
	"prezzo": 15.67,
	"condimenti": ["Funghi", "Pecorino", "Salame", "Basilico"],
	"cliente": {
		"nome": "Jane Doe",
		"telefono": "455-344-234",
		"email": "janedoe@email.com"
	}
}
"""</code></pre><figcaption>Stringa JSON</figcaption></figure><ul><li>Per definire una stringa multi-riga in Python usiamo le virgolette triple. </li><li>Poi assegniamo la stringa alla variabile <code>dati_JSON</code>.</li></ul><p>💡 <strong>Suggerimento<strong>:</strong> </strong><a href="https://www.python.org/dev/peps/pep-0008/#string-quotes">La Guida di Stile di Python</a><strong> </strong>raccomanda l'uso delle virgolette doppie per le stringhe racchiuse tra virgolette triple.</p><h3 id="da-stringa-json-a-dizionario-python"><strong>Da Stringa <strong>JSON </strong>a Dizionario Python</strong></h3><p>Useremo una stringa con il formato JSON per creare un dizionario Python, in modo da potervi accedere e lavorare apportando modifiche.</p><p>Per fare questo useremo la funzione <code>loads()</code> del modulo <code>json</code>, passando la stringa come argomento.</p><p>Questa è la sintassi:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_1.png" class="kg-image" alt="json_1" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_1.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_1.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_1.png 1497w" sizes="(min-width: 1200px) 1200px" width="1497" height="450" loading="lazy"></figure><p>Ecco il codice:</p><pre><code class="language-python"># Importazione del modulo
import json

# Stringa con formato JSON
dati_JSON =  """
{
	"taglia": "Media",
	"prezzo": 15.67,
	"condimenti": ["Funghi", "Pecorino", "Salame", "Basilico"],
	"cliente": {
		"nome": "Jane Doe",
		"telefono": "455-344-234",
		"email": "janedoe@email.com"
	}
}
"""

# Converte una stringa JSON in un dizionario
dati_diz = json.loads(dati_JSON)
</code></pre><p>Concentriamoci su questa riga:</p><pre><code class="language-python">dati_diz = json.loads(dati_JSON)</code></pre><ul><li><code>json.loads(dati_JSON)</code> crea un nuovo dizionario con le coppie chiave-valore della stringa JSON e lo restituisce.</li><li>Successivamente il dizionario restituito viene assegnato alla variabile <code>dati_diz</code>.</li></ul><p>Se stampiamo il nuovo dizionario otterremo questo risultato:</p><pre><code class="language-python">{'taglia': 'Media', 'prezzo': 15.67, 'condimenti': ['Funghi', 'Pecorino', 'Salame', 'Basilico'], 'cliente': {'nome': 'Jane Doe', 'telefono': '455-344-234', 'email': 'janedoe@email.com'}}</code></pre><p>Il dizionario è stato popolato con i dati della stringa JSON. Ogni coppia chiave-valore è stata aggiunta con successo.</p><p>Ora vediamo cosa accade cercando di accedere ai valori delle coppie chiave-valore con la stessa sintassi usata per accedere ai valori di un normale dizionario Python:</p><pre><code class="language-python">print(dati_diz["taglia"])
print(dati_diz["prezzo"])
print(dati_diz["condimenti"])
print(dati_diz["cliente"])</code></pre><p>Il risultato è:</p><pre><code>Media
15.67
['Funghi', 'Pecorino', 'Salame', 'Basilico']
{'nome': 'Jane Doe', 'telefono': '455-344-234', 'email': 'janedoe@email.com'}</code></pre><p>Esattamente quello che ci aspettavamo. Ogni chiave può essere usata per accedere al suo corrispondente valore.</p><p>💡 <strong>Suggerimento<strong>:</strong></strong> è possibile usare questo dizionario come un qualsiasi altro dizionario Python. Ad esempio, si possono chiamare metodi di dizionario, aggiungere, aggiornare e rimuovere coppie chiave-valore e altro. È anche possibile usarlo in un loop for.</p><h3 id="da-json-a-python-conversione-di-tipo"><strong>Da <strong>JSON </strong>a<strong> Python: </strong>Conversione di Tipo</strong></h3><p>Usando <code>loads()</code> per creare un dizionario Python da una stringa JSON noterai che alcuni valori verranno convertiti nei loro corrispondenti valori e tipi di dato Python.</p><p>Questa tabella presentata nella <a href="https://docs.python.org/3/library/json.html#encoders-and-decoders">Documentazione Python</a> per il modulo <code>json</code> riassume la corrispondenza tra i valori e tipi di dato JSON e Python:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/image-5.png" class="kg-image" alt="image-5" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/image-5.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/image-5.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/image-5.png 1019w" sizes="(min-width: 720px) 720px" width="1019" height="589" loading="lazy"><figcaption>Tabella presente nella<a href="https://docs.python.org/3/library/json.html#encoders-and-decoders"> documentazione ufficiale del modulo json</a></figcaption></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> la stessa tabella di conversione si applica quando si lavora con file JSON.</p><h3 id="da-dizionari-python-a-stringhe-json"><strong>Da Dizionari <strong>Python </strong>a Stringhe JSON</strong></h3><p>Ora sai come creare un dizionario Python da una stringa in formato JSON.</p><p>Ma delle volte potrebbe essere necessario fare esattamente l'opposto, creando una stringa in formato JSON da un oggetto (ad esempio un dizionario) per stamparlo, visualizzarlo, salvarlo o lavorarci come con una stringa.</p><p>Per fare questo possiamo usare la funzione <code>dumps</code> del modulo <code>json</code> passando l'oggetto come argomento:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_2.png" class="kg-image" alt="json_2" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_2.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_2.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_2.png 1325w" sizes="(min-width: 1200px) 1200px" width="1325" height="474" loading="lazy"></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> questa funzione restituirà una stringa.</p><p>Questo è un esempio in cui il dizionario Python <code>cliente</code> viene convertito in una stringa in formato JSON e memorizzata in una variabile:</p><pre><code class="language-python"># Dizionario Python
cliente = {
    "nome": "Nora",
    "età": 56,
    "id": "45355",
    "colore_occhi": "verde",
    "indossa_occhiali": False
}

# Ottiene una stringa JSON formattata
cliente_JSON = json.dumps(cliente)</code></pre><p>Focalizziamoci su questa riga:</p><pre><code class="language-python">cliente_JSON = json.dumps(cliente)</code></pre><ul><li><code>json.dumps(cliente)</code> crea e restituisce una stringa con tutte le coppie chiave-valore del dizionario in formato JSON.</li><li>Successivamente la stringa viene assegnata alla variabile <code>cliente_JSON</code>.</li></ul><p>Se stampiamo questa stringa otterremo questo risultato:</p><pre><code class="language-python">{"nome": "Nora", "età": 56, "id": "45355", "colore_occhi": "verde", "indossa_occhiali": false}</code></pre><p>💡 <strong>Suggerimento<strong>:</strong></strong> nota che l'ultimo valore (<code>false</code>) è stato cambiato. Nel dizionario Python questo valore era <code>False</code>, ma in JSON il valore equivalente è <code>false</code>. Questo permette di confermare che, in effetti, il dizionario originale è ora rappresentato come una stringa con il formato JSON.</p><p>Verificando il tipo di dato di questa variabile vedremo:</p><pre><code class="language-python">&lt;class 'str'&gt;</code></pre><p>Quindi il valore restituito da questa funzione è sicuramente una stringa.</p><h3 id="da-python-a-json-conversione-di-tipo"><strong>Da <strong>Python </strong>a<strong> JSON: </strong>Conversione di Tipo</strong></h3><p>Si verifica un processo di conversione di tipo anche quando si converte un dizionario in una stringa JSON. Questa tabella, tratta dalla <a href="https://docs.python.org/3/library/json.html#json.JSONEncoder">Documentazione Python</a>, illustra i valori corrispondenti:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/image-6.png" class="kg-image" alt="image-6" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/image-6.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/image-6.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/image-6.png 1228w" sizes="(min-width: 720px) 720px" width="1228" height="536" loading="lazy"><figcaption>Tabella dalla <a href="https://docs.python.org/3/library/json.html#json.JSONEncoder">documentazione ufficiale del modulo json</a></figcaption></figure><h3 id="come-stampare-json-con-indentazione"><strong>Come Stampare <strong>JSON </strong>con Indentazione</strong></h3><p>Se usiamo la funzione <code>dumps</code> e stampiamo la stringa ottenuta nell'esempio precedente vedremo:</p><pre><code class="language-python">{"nome": "Nora", "età": 56, "id": "45355", "colore_occhi": "verde", "indossa_occhiali": false}</code></pre><p>Non molto leggibile, vero?</p><p>È possibile migliorare la leggibilità di una stringa JSON aggiungendo l'<strong>indentazione</strong>.</p><p>Per farlo automaticamente è sufficiente passare un secondo argomento per specificare il numero di spazi da usare per indentare la stringa JSON:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_3-1.png" class="kg-image" alt="json_3-1" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_3-1.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_3-1.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_3-1.png 1510w" sizes="(min-width: 1200px) 1200px" width="1510" height="408" loading="lazy"></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> il secondo argomento deve essere un intero non negativo (il numero di spazi) o una stringa. Se <code>indent</code> è una stringa (tipo <code>"\t"</code>), essa viene usata per indentare ciascun livello (<a href="https://docs.python.org/3/library/json.html#json.dump">fonte</a>).</p><p>Ora se chiamiamo <code>dumps</code> con il secondo argomento:</p><pre><code class="language-python">cliente_JSON = json.dumps(cliente, indent=4)</code></pre><p>Il risultato della stampa di <code>cliente_JSON</code> è:</p><pre><code class="language-python">{
    "nome": "Nora",
    "età": 56,
    "id": "45355",
    "colore_occhi": "verde",
    "indossa_occhiali": false
}</code></pre><p>Fantastico, non è vero? Ora la stringa è ben formattata. Sarà molto utile per lavorare con i file e salvare i dati in un formato leggibile.</p><h3 id="come-ordinare-le-chiavi"><strong>Come Ordinare le Chiavi</strong></h3><p>Le chiavi si possono anche ordinare alfabeticamente, se necessario. Per fare questo occorre utilizzare l'argomento <code>sort_keys</code> passando il valore <code>True</code>:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_4-2.png" class="kg-image" alt="json_4-2" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_4-2.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_4-2.png 1000w, https://www.freecodecamp.org/italian/news/content/images/size/w1600/2022/09/json_4-2.png 1600w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_4-2.png 1862w" sizes="(min-width: 1200px) 1200px" width="1862" height="499" loading="lazy"></figure><p>💡 <strong>Suggerimento<strong>:</strong></strong> il valore di &nbsp;<code>sort_keys</code> è <code>False</code> nella modalità predefinita, se non si passa un valore.</p><p>Ad esempio:</p><pre><code class="language-python">cliente_JSON = json.dumps(cliente, sort_keys=True)</code></pre><p>Restituisce questa stringa con le chiavi ordinate alfabeticamente:</p><pre><code class="language-python">{"colore_occhi": "verde", "età": 56, "id": "45355", "indossa_occhiali": false, "nome": "Nora"}</code></pre><h3 id="come-ordinare-alfabeticamente-e-indentare-allo-stesso-tempo-"><strong>Come Ordinare Alfabeticamente e Indentare (allo stesso tempo<strong>)</strong></strong></h3><p>Per generare una stringa JSON che sia ordinata alfabeticamente e indentata occorre passare i due argomenti:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-104.png" class="kg-image" alt="image-104" width="600" height="400" loading="lazy"></figure><p>In questo caso il risultato è:</p><pre><code class="language-python">{
    "colore_occhi": "verde",
    "età": 56,
    "id": "45355",
    "indossa_occhiali": false,
    "nome": "Nora"
}</code></pre><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> si possono passare questi argomenti in qualsiasi ordine, ma l'oggetto deve essere il primo argomento nella funzione.</p><p>Ora che sai come lavorare con le stringhe JSON, vedremo come è possibile lavorare con file JSON in un programma Python.</p><h2 id="-json-e-i-file"><strong><strong>🔸 JSON </strong>e<strong> </strong>i <strong>File</strong></strong></h2><p>JSON è tipicamente usato per conservare dati in dei file, quindi Python fornisce gli strumenti necessari per leggere questi tipi di file in un programma, per lavorare con i dati e scriverne nuovi.</p><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> un file JSON ha una estensione &nbsp;<code>.json</code>:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/10/image-62.png" class="kg-image" alt="image-62" width="600" height="400" loading="lazy"></figure><p>Ora vediamo come è possibile lavorare con file <code>.json</code> in Python.</p><h3 id="come-leggere-un-file-json-in-python"><strong>Come Leggere un File JSON <strong>in Python</strong></strong></h3><p>Ipotizziamo di aver creato un file &nbsp;<code>ordinazioni.json</code> con i dati che rappresentano due ordinazioni di una pizzeria:</p><figure class="kg-card kg-code-card"><pre><code class="language-python">{
	"ordinazioni": [ 
		{
			"taglia": "media",
			"prezzo": 15.67,
			"condimenti": ["funghi", "salame", "basilico"],
			"formaggio_extra": false,
			"consegna": true,
			"cliente": {
				"nome": "Jane Doe",
				"telefono": null,
				"email": "janedoe@email.com"
			}
		},
		{
			"taglia": "piccola",
			"prezzo": 6.54,
			"condimenti": null,
			"formaggio_extra": true,
			"consegna": false,
			"cliente": {
				"nome": "Foo Jones",
				"telefono": "556-342-452",
				"email": null
			}
		}
	]
}</code></pre><figcaption>ordinazioni.json</figcaption></figure><p>Prendiamoci un momento per analizzare la struttura di questo file JSON.</p><p>Ecco alcuni veloci suggerimenti:</p><ul><li>Nota il tipo di dato dei valori, l'indentazione e la struttura generale del file.</li><li>Il valore della chiave principale <code>"ordinazioni"</code> è un array di oggetti JSON (questo array verrà rappresentato come una lista in Python). Ogni oggetto JSON contiene i dati dell'ordinazione di una pizza.</li></ul><p>Se vogliamo leggere questo file in Python occorre semplicemente usare un'istruzione <code>with</code>:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_5.png" class="kg-image" alt="json_5" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_5.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_5.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_5.png 1478w" sizes="(min-width: 1200px) 1200px" width="1478" height="659" loading="lazy"></figure><p>💡 <strong>Suggerimento<strong>:</strong></strong> nella sintassi qui sopra, si può assegnare a <code>file</code> (riquadro verde) un qualsiasi nome. Si tratta di una variabile che possiamo usare all'interno del blocco <code>with</code> per fare riferimento all'oggetto file.</p><p>La riga di codice chiave in questa sintassi è:</p><pre><code>data = json.load(file)</code></pre><ul><li><code>json.load(file)</code> crea e restituisce un nuovo dizionario Python con le coppie chiave-valore del file JSON.</li><li>Successivamente il dizionario viene assegnato alla variabile <code>data</code> .</li></ul><p>💡 <strong>Suggerimento<strong>:</strong></strong> nota che stiamo usando <code>load()</code> invece di <code>loads()</code>. Questa è una funzione diversa nel modulo <code>json</code>. Alla fine di questo articolo, saprai di più sulle differenze tra loro.</p><p>Una volta che abbiamo il contenuto del file JSON memorizzato nella variabile <code>data</code> come dizionario, è possibile usarlo per fare praticamente tutto quello che desideriamo.</p><h3 id="esempi"><strong>Esempi</strong></h3><p>Per esempio, se scriviamo:</p><pre><code class="language-python">print(len(data["ordinazioni"]))</code></pre><p>Il risultato sarà <code>2</code> perché il valore della chiave principale <code>"ordinazioni"</code> è una lista con due elementi.</p><p>È possibile anche usare le chiavi per accedere ai valori corrispondenti. Questo è ciò che si fa tipicamente quando si lavora con file JSON.</p><p>Ad esempio, per accedere ai condimenti del primo ordine, scriveremo:</p><pre><code>data["ordinazioni"][0]["condimenti"]</code></pre><ul><li>Prima selezioniamo la chiave principale <code>"ordinazioni"</code>.</li><li>Poi selezioniamo il primo elemento nella lista (indice <code>0</code>).</li><li>Infine selezioniamo il valore che corrisponde alla chiave <code>"condimenti"</code>.</li></ul><p>Se stampiamo questo valore il risultato sarà:</p><pre><code class="language-python">['funghi', 'salame', 'basilico']</code></pre><p>Proprio quello che ci aspettavamo. Dobbiamo semplicemente addentrarci più a fondo nella struttura del dizionario usando le chiavi e gli indici necessari. Si può usare il file o la stringa originale JSON come riferimento visivo. In questo modo è possibile accedere, modificare o eliminare qualunque valore.</p><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> tieni a mente che stiamo lavorando con il nuovo dizionario. Le modifiche fatte al dizionario non hanno effetto sul file JSON. Per aggiornare il contenuto del file occorre scrivere su quel file.</p><h3 id="come-scrivere-su-un-file-json"><strong>Come Scrivere su un File JSON</strong></h3><p>Ora, vediamo come si può scrivere su un file JSON.</p><p>La prima riga dell'istruzione <code>with</code> è molto simile. L'unica differenza è che occorre aprire il file in modalità di scrittura <code>'w'</code> (write) per poter modificare il file.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_6.png" class="kg-image" alt="json_6" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_6.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_6.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_6.png 1512w" sizes="(min-width: 1200px) 1200px" width="1512" height="358" loading="lazy"></figure><p><strong><strong>💡 </strong>Suggerimento<strong>:</strong></strong> se il file non esiste già nella directory di lavoro corrente, verrà creato automaticamente. Usando la modalità <code>'w'</code> l'intero contenuto del file, se già esiste, verrà sovrascritto.</p><p>Ci sono due alternative per scrivere su un file JSON nel corpo di una istruzione <code>with</code>:</p><ul><li><code>dump</code></li><li><code>dumps</code></li></ul><p>La funzione <code>dump()</code> riceve due argomenti:</p><ul><li>L'oggetto che verrà salvato in formato JSON (ad esempio un dizionario).</li><li>Il nome del file con cui verrà salvato (un oggetto file).</li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_7.png" class="kg-image" alt="json_7" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_7.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_7.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_7.png 1491w" sizes="(min-width: 1200px) 1200px" width="1491" height="657" loading="lazy"></figure><p>Ipotizziamo che la pizzeria voglia eliminare i dati dei clienti dal file JSON e voglia creare un nuovo file JSON chiamato <code>ordinazioni_nuovo.json</code> con questa nuova versione.</p><p>È possibile farlo con questo codice:</p><pre><code class="language-python"># Apre il file orders.json
with open("ordinazioni.json") as file:
    # Carica il suo contenuto e crea un nuovo dizionario
    data = json.load(file)

    # Cancella la coppia chiave-valore "cliente" da ciascun ordine
    for ordinazione in data["ordinazioni"]:
        del ordinazione["cliente"]

# Apre (o crea) un file ordinazioni_nuovo.json 
# e salva la nuova versione dei dati.
with open("ordinazioni_nuovo.json", 'w') as file:
    json.dump(data, file)</code></pre><p>Questa era la versione originale dei dati nel file <code>ordinazioni.json</code>. Nota che esiste la coppia chiave-valore <code>"cliente"</code>.</p><figure class="kg-card kg-code-card"><pre><code class="language-python">{
	"ordinazioni": [ 
		{
			"taglia": "media",
			"prezzo": 15.67,
			"condimenti": ["funghi", "salame", "basilico"],
			"formaggio_extra": false,
			"consegna": true,
			"cliente": {
				"nome": "Jane Doe",
				"telefono": null,
				"email": "janedoe@email.com"
			}
		},
		{
			"taglia": "piccola",
			"prezzo": 6.54,
			"condimenti": null,
			"formaggio_extra": true,
			"consegna": false,
			"cliente": {
				"nome": "Foo Jones",
				"telefono": "556-342-452",
				"email": null
			}
		}
	]
}
</code></pre><figcaption>ordinazioni.json</figcaption></figure><p>Questa è la nuova versione nel file <code>ordinazioni_nuovo.json</code>:</p><figure class="kg-card kg-code-card"><pre><code class="language-python">{"ordinazioni": [{"taglia": "media", "prezzo": 15.67, "condimenti": ["funghi", "salame", "basilico"], "formaggio_extra": false, "consegna": true}, {"taglia": "piccola", "prezzo": 6.54, "condimenti": null, "formaggio_extra": true, "consegna": false}]}</code></pre><figcaption>ordinazioni_nuovo.json</figcaption></figure><p>Analizzando con cura il contenuto puoi vedere che la coppia chiave-valore <code>"cliente"</code> è stata rimossa da tutti gli ordini.</p><p>Tuttavia qualcosa manca nel file, giusto?</p><p>Riflettiamoci per un attimo... Cosa potrebbe essere?</p><p>L'indentazione, naturalmente!</p><p>Questo file non sembra davvero un file JSON, ma si può risolvere facilmente passando l'argomento <code>indent=4</code> a <code>dump()</code>:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/italian/news/content/images/2022/09/json_8.png" class="kg-image" alt="json_8" srcset="https://www.freecodecamp.org/italian/news/content/images/size/w600/2022/09/json_8.png 600w, https://www.freecodecamp.org/italian/news/content/images/size/w1000/2022/09/json_8.png 1000w, https://www.freecodecamp.org/italian/news/content/images/2022/09/json_8.png 1510w" sizes="(min-width: 1200px) 1200px" width="1510" height="342" loading="lazy"></figure><p>Ora il contenuto del file è questo:</p><figure class="kg-card kg-code-card"><pre><code class="language-python">{
    "ordinazioni": [
        {
            "taglia": "media",
            "prezzo": 15.67,
            "condimenti": [
                "funghi",
                "salame",
                "basilico"
            ],
            "formaggio_extra": false,
            "consegna": true
        },
        {
            "taglia": "piccola",
            "prezzo": 6.54,
            "condimenti": null,
            "formaggio_extra": true,
            "consegna": false
        }
    ]
}</code></pre><figcaption>ordinazioni_nuovo.json</figcaption></figure><p>Che differenza! Ecco come ci si aspetta che sia un file JSON.</p><p>Ora sai come leggere e scrivere un file JSON usando &nbsp;<code>load()</code> e <code>dump()</code>. Ora passiamo a esaminare le differenze tra queste funzioni e le funzioni utilizzate per lavorare con le stringhe JSON.</p><h2 id="-load-vs-loads-"><strong><strong>🔹 load() </strong>vs <strong>loads()</strong></strong></h2><p>Questa tabella riassume le differenze chiave tra queste due funzioni:</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th></th>
<th>load()</th>
<th>loads()</th>
</tr>
</thead>
<tbody>
<tr>
<td>Scopo</td>
<td>Crea un oggetto Python da un file JSON</td>
<td>Crea un oggetto Python da una stringa</td>
</tr>
<tr>
<td>Argomento</td>
<td>File JSON</td>
<td>Stringa</td>
</tr>
<tr>
<td>Valore Restituito</td>
<td>Oggetto Python</td>
<td>Oggetto Python</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>💡 <strong>Suggerimento<strong>:</strong></strong> pensa alla "s" in <code>loads()</code> come "load <em>string</em>". Ti aiuterà a ricordare quando usare le due funzioni.</p><h2 id="-dump-vs-dumps-"><strong><strong>🔸 dump() </strong>vs <strong>dumps()</strong></strong></h2><p>Questa tabella riassume le differenze chiave tra queste due funzioni:</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th></th>
<th>dump()</th>
<th>dumps()</th>
</tr>
</thead>
<tbody>
<tr>
<td>Scopo</td>
<td>Scrive un oggetto nel formato JSON su un file</td>
<td>Ottiene una stringa JSON da un oggetto</td>
</tr>
<tr>
<td>Argomenti</td>
<td>Oggetto + File</td>
<td>Oggetto</td>
</tr>
<tr>
<td>Valore Restituito</td>
<td>None</td>
<td>Stringa</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>💡 <strong>Suggerimento<strong>:</strong></strong> pensa alla "s" in <code>dumps()</code> come "dump <em>string</em>". Ti aiuterà a ricordare quando usare le due funzioni.</p><h2 id="-terminologia-importante-in-json"><strong><strong>🔹 Terminolog</strong>ia <strong>Important</strong>e<strong> &nbsp;in JSON</strong></strong></h2><p>Per finire, ci sono due importanti termini che occorre conoscere per lavorare con JSON:</p><ul><li><strong><strong>Serializ</strong>z<strong>a</strong>z<strong>ion</strong>e<strong>:</strong></strong> conversione di un oggetto in una stringa JSON.</li><li><strong><strong>Deserializ</strong>z<strong>a</strong>z<strong>ion</strong>e<strong>:</strong></strong> conversione di una stringa JSON in un oggetto.</li></ul><h2 id="-in-sintesi"><strong><strong>🔸 </strong>In Sintesi</strong></h2><ul><li>JSON (JavaScript Object Notation) è un formato usato per rappresentare e memorizzare dati.</li><li>È comunemente usato per trasferire dati sul web e memorizzare impostazioni di configurazione.</li><li>I file JSON hanno un'estensione <code>.json</code>.</li><li>È possibile convertire stringhe JSON in oggetti Python e viceversa.</li><li>È possibile leggere file JSON e creare oggetti Python dalle coppie chiave-valore.</li><li>È possibile scrivere file JSON per salvare il contenuto di oggetti Python in formato JSON.</li></ul><p><strong>Spero davvero che il mio articolo ti sia piaciuto e che tu lo abbia trovato utile. </strong>Ora sai come lavorare con JSON in Python<strong>.</strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Esempio di commento in JSON: Come Commentare nei File JSON ]]>
                </title>
                <description>
                    <![CDATA[ Se hai problemi ad aggiungere commenti al tuo file JSON, c'è una buona ragione: JSON non supporta i commenti. "Ho rimosso i commenti da JSON perché ho visto che le persone li usavano per mantenere le direttive di analisi, una pratica che avrebbe distrutto l'interoperabilità", scrive Douglas Crockford [https://web.archive.org/web/20150105080225if_/https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr]  ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/esempio-di-commento-json-come-commentare-nei-file-json/</link>
                <guid isPermaLink="false">62091b73b45ad1050e2800b1</guid>
                
                    <category>
                        <![CDATA[ JSON ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Angelo Mirabelli ]]>
                </dc:creator>
                <pubDate>Wed, 23 Feb 2022 08:32:42 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/02/abstract-art-blur-bright-373543.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/json-comment-example-how-to-comment-in-json-files/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">JSON Comment Example — How to Comment in JSON Files</a>
      </p><p>Se hai problemi ad aggiungere commenti al tuo file JSON, c'è una buona ragione: JSON non supporta i commenti.</p><p>"Ho rimosso i commenti da JSON perché ho visto che le persone li usavano per mantenere le direttive di analisi, una pratica che avrebbe distrutto l'interoperabilità", scrive <a href="https://web.archive.org/web/20150105080225if_/https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr">Douglas Crockford</a> , che ha reso popolare il formato dei dati basato su testo.</p><p>Tuttavia, c'è una soluzione alternativa. Ed è di questo che tratta questo articolo: come aggiungere commenti al tuo file JSON.</p><h2 id="aggiungi-dati-come-commenti"><strong>Aggiungi dati come commenti</strong></h2><p>Un modo per aggirare il problema dei commenti è aggiungere dati al file JSON che funzionano come commenti.</p><p>Esaminiamo un esempio, partendo da queste informazioni nel nostro file JSON:</p><pre><code class="language-json">{
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}
</code></pre><p><br>Ora aggiungiamo un'altra coppia chiave-valore da utilizzare come nostro commento, che puoi vedere nella prima riga del codice qui sotto:</p><pre><code class="language-json">{
   "_comment1": "this is my comment",
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}
</code></pre><p>Ecco un altro esempio. Questa volta, utilizziamo due caratteri di sottolineatura all'inizio e alla fine della chiave:</p><pre><code class="language-json"> "__comment2__": "this is another comment",
</code></pre><p>I trattini bassi aiutano a differenziare il commento dal resto dei dati nel nostro file.</p><h3 id="una-parola-di-avvertimento"><strong>Una parola di avvertimento</strong></h3><p>C'è un dettaglio importante da tenere a mente.</p><p>I commenti che abbiamo aggiunto al nostro file JSON sono inclusi nell'oggetto JSON. In altre parole, i commenti vengono trattati come dati.</p><p>Ecco cosa intendiamo.</p><p>Questo è il codice nel nostro file <strong><strong><code>data.json</code></strong></strong>:</p><pre><code class="language-json">{
   "_comment1": "this is my comment",
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}
</code></pre><p>Ora leggeremo quei dati dal file :<strong><strong> <code>read_comments.py</code></strong></strong></p><pre><code class="language-python">import json
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
print(data)
</code></pre><p>Il risultato include il nostro commento:</p><pre><code class="language-json">{'_comment1': 'this is my comment', 'sport': 'basketball', 'coach': 'Joe Smith', 'wins': 15, 'losses': 5}
</code></pre><p>Possiamo anche estrarre il valore del commento dall'oggetto JSON: <code>this is my comment</code>:</p><pre><code class="language-python">import json
 
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
   print(data["_comment1"])
</code></pre><p>Tieni presente che il commento è solo un commento agli occhi dello sviluppatore, non del computer.</p><h3 id="un-diverso-tipo-di-commento"><strong>Un diverso tipo di commento</strong></h3><p>Questa pratica di commento JSON è diversa dai commenti nei linguaggi di programmazione, come Python, che in genere vengono ignorati durante l'esecuzione del programma.</p><pre><code class="language-python"># Qui è il mio commento
word = "casa"
for letter in word:
   print(letter)
</code></pre><p>Quando eseguiamo questo frammento di codice in Python, otteniamo la stringa &nbsp; "casa" nella variabile <em>word</em>. Ma non vediamo il commento. È ignorato.</p><h2 id="opzioni-di-commento"><strong>Opzioni di commento</strong></h2><p><a href="https://www.crockford.com/jsmin.html">JSMin</a> è un'altra opzione da considerare.</p><p>È uno strumento che rimuove gli spazi bianchi e i commenti aggiuntivi dai file JavaScript. Ma funziona anche su file JSON. JSMin rimuove i commenti dai file JSON prima che vengano analizzati.</p><p>Quindi ci sono più opzioni quando si tratta di commentare nei file JSON. Sebbene non siano soluzioni perfette, almeno ci sono modi per includere la documentazione di cui hai bisogno quando ne hai bisogno.</p><p><em><em><em><em>Scrivo sull'apprendimento della programmazione e sui modi migliori per farlo (</em></em></em></em><a href="https://amymhaddad.com/" rel="noopener nofollow"> amymhaddad.com</a> ).</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
