JSON (JavaScript Object Notation) és un format lleuger d'intercanvi de dades fàcil de llegir i escriure tant per a humans com per a màquines. Python proporciona suport natiu per treballar amb JSON a través del mòdul json
.
Continguts
Introducció a JSON
JSON és un format de text que utilitza una notació semblant a la de JavaScript per representar estructures de dades. Aquí tens un exemple de dades en format JSON:
{ "nom": "Joan", "edat": 30, "ciutat": "Barcelona", "habilitats": ["Python", "Django", "Machine Learning"] }
Serialització i Deserialització
Serialització
La serialització és el procés de convertir un objecte Python en una cadena JSON. Això es pot fer amb la funció json.dumps()
.
import json # Exemple de diccionari Python dades = { "nom": "Joan", "edat": 30, "ciutat": "Barcelona", "habilitats": ["Python", "Django", "Machine Learning"] } # Convertir el diccionari a una cadena JSON dades_json = json.dumps(dades) print(dades_json)
Deserialització
La deserialització és el procés de convertir una cadena JSON en un objecte Python. Això es pot fer amb la funció json.loads()
.
import json # Exemple de cadena JSON dades_json = '{"nom": "Joan", "edat": 30, "ciutat": "Barcelona", "habilitats": ["Python", "Django", "Machine Learning"]}' # Convertir la cadena JSON a un diccionari Python dades = json.loads(dades_json) print(dades)
Lectura de Fitxers JSON
Per llegir dades d'un fitxer JSON, podem utilitzar la funció json.load()
. Aquí tens un exemple:
import json # Obrir el fitxer JSON en mode lectura with open('dades.json', 'r') as fitxer: dades = json.load(fitxer) print(dades)
Escriptura de Fitxers JSON
Per escriure dades en un fitxer JSON, podem utilitzar la funció json.dump()
. Aquí tens un exemple:
import json # Exemple de diccionari Python dades = { "nom": "Joan", "edat": 30, "ciutat": "Barcelona", "habilitats": ["Python", "Django", "Machine Learning"] } # Obrir el fitxer JSON en mode escriptura with open('dades.json', 'w') as fitxer: json.dump(dades, fitxer)
Exercicis Pràctics
Exercici 1: Serialitzar i Deserialitzar
- Crea un diccionari Python amb les teves dades personals (nom, edat, ciutat, habilitats).
- Serialitza aquest diccionari a una cadena JSON.
- Deserialitza la cadena JSON a un diccionari Python.
Exercici 2: Lectura i Escriptura de Fitxers JSON
- Escriu el diccionari creat a l'exercici anterior en un fitxer JSON.
- Llegeix el fitxer JSON i converteix-lo en un diccionari Python.
Solucions
Exercici 1
import json # 1. Crear un diccionari Python dades_personals = { "nom": "Maria", "edat": 25, "ciutat": "Girona", "habilitats": ["Python", "Flask", "Data Analysis"] } # 2. Serialitzar a cadena JSON dades_json = json.dumps(dades_personals) print(dades_json) # 3. Deserialitzar a diccionari Python dades_deserialitzades = json.loads(dades_json) print(dades_deserialitzades)
Exercici 2
import json # Diccionari Python dades_personals = { "nom": "Maria", "edat": 25, "ciutat": "Girona", "habilitats": ["Python", "Flask", "Data Analysis"] } # 1. Escriure en un fitxer JSON with open('dades_personals.json', 'w') as fitxer: json.dump(dades_personals, fitxer) # 2. Llegir del fitxer JSON with open('dades_personals.json', 'r') as fitxer: dades_llegides = json.load(fitxer) print(dades_llegides)
Conclusió
En aquesta secció, hem après a treballar amb dades JSON en Python. Hem vist com serialitzar i deserialitzar dades, així com com llegir i escriure fitxers JSON. Aquestes habilitats són essencials per a la manipulació de dades en aplicacions reals, especialment en el context de la comunicació entre serveis web i l'emmagatzematge de dades estructurades.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn