Werken met JSON-gegevens in Python

JSON (JavaScript Object Notation) is een lichtgewicht dataformaat dat wordt gebruikt voor gegevensuitwisseling tussen een server en een client. Het wordt vaak gebruikt in webapplicaties om gegevens te verzenden en ontvangen. Python biedt een ingebouwde module genaamd json die het eenvoudig maakt om met JSON-gegevens te werken. Dit artikel leidt u door de basisbeginselen van het werken met JSON-gegevens in Python, inclusief het lezen, schrijven en manipuleren van JSON-objecten.

Wat is JSON?

JSON is een tekstgebaseerd formaat dat gemakkelijk te lezen en schrijven is voor zowel mensen als machines. Het bestaat uit sleutel-waardeparen, vergelijkbaar met Python-woordenboeken. Een typisch JSON-object ziet er zo uit:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

De JSON-module importeren

De json module is opgenomen in de standaardbibliotheek van Python, dus u hoeft niets te installeren. Importeer het gewoon aan het begin van uw script:

import json

JSON-gegevens lezen

U kunt JSON-gegevens uit een string of een bestand lezen. De json.loads()-methode wordt gebruikt om JSON-gegevens uit een string te parseren, terwijl json.load() wordt gebruikt om JSON-gegevens uit een bestand te lezen.

JSON uit een string lezen

Om JSON uit een tekenreeks te lezen, gebruikt u de methode json.loads(), die de JSON-tekenreeks omzet in een Python-woordenboek.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

JSON uit een bestand lezen

Om JSON-gegevens uit een bestand te lezen, gebruikt u de methode json.load(). Deze methode leest de inhoud van een bestand en converteert deze naar een Python-woordenboek.

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

JSON-gegevens schrijven

U kunt JSON-gegevens naar een string of een bestand schrijven. De json.dumps()-methode wordt gebruikt om een ​​Python-object om te zetten in een JSON-string, terwijl json.dump() wordt gebruikt om JSON-gegevens naar een bestand te schrijven.

JSON naar een string schrijven

Om JSON naar een string te schrijven, gebruikt u de methode json.dumps(), die een Python-woordenboek naar een JSON-string converteert.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

JSON naar een bestand schrijven

Om JSON-gegevens naar een bestand te schrijven, gebruikt u de json.dump()-methode. Deze methode neemt een Python-object en schrijft het naar een bestand in JSON-formaat.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

JSON-gegevens mooi afdrukken

De json.dumps()-methode heeft verschillende parameters waarmee u JSON-gegevens kunt formatteren voor betere leesbaarheid. De parameter indent specificeert het aantal spaties dat moet worden gebruikt voor inspringing, terwijl de parameter sort_keys ​​de sleutels in de uitvoer sorteert.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

Converteren tussen JSON- en Python-gegevenstypen

Python's json module kan verschillende datatypes verwerken en deze converteren tussen JSON en Python. Hier is een snelle referentie:

  • dict (Python) naar object (JSON)
  • lijst (Python) naar array (JSON)
  • str (Python) naar string (JSON)
  • int, float (Python) naar number (JSON)
  • True, False (Python) naar true, false (JSON)
  • Geen (Python) naar null (JSON)

JSON-fouten verwerken

Tijdens het werken met JSON kunnen fouten optreden door onjuiste opmaak of onverwachte gegevens. De json-module genereert uitzonderingen zoals JSONDecodeError wanneer deze dergelijke problemen tegenkomt. Gebruik de blokken try en except om deze fouten netjes af te handelen.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

Conclusie

Werken met JSON-data is een fundamentele vaardigheid voor Python-ontwikkelaars, met name in webontwikkeling en datawetenschap. De json-module biedt eenvoudig te gebruiken methoden voor het lezen, schrijven en manipuleren van JSON-data. Door deze technieken onder de knie te krijgen, kunt u efficiënt omgaan met JSON-data in uw Python-applicaties.