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
