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

  1. Crea un diccionari Python amb les teves dades personals (nom, edat, ciutat, habilitats).
  2. Serialitza aquest diccionari a una cadena JSON.
  3. Deserialitza la cadena JSON a un diccionari Python.

Exercici 2: Lectura i Escriptura de Fitxers JSON

  1. Escriu el diccionari creat a l'exercici anterior en un fitxer JSON.
  2. 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

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats