Arbejde med JSON Data i Python

JSON (JavaScript Object Notation) er et letvægtsdataformat, der bruges til dataudveksling mellem en server og en klient. Det bruges almindeligvis i webapplikationer til at sende og modtage data. Python har et indbygget modul kaldet json, der gør det nemt at arbejde med JSON-data. Denne artikel vil guide dig gennem det grundlæggende i at arbejde med JSON-data i Python, herunder læsning, skrivning og manipulation af JSON-objekter.

Hvad er JSON?

JSON er et tekstbaseret format, der er let at læse og skrive for både mennesker og maskiner. Den består af nøgleværdi-par, der ligner Python-ordbøger. Et typisk JSON-objekt ser sådan ud:

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

Import af JSON-modulet

json-modulet er inkluderet i Pythons standardbibliotek, så du behøver ikke at installere noget. Du skal blot importere det i begyndelsen af ​​dit script:

import json

Læser JSON-data

Du kan læse JSON-data fra en streng eller en fil. Metoden json.loads() bruges til at parse JSON-data fra en streng, mens json.load() bruges til at læse JSON-data fra en fil.

Læser JSON fra en streng

For at læse JSON fra en streng skal du bruge metoden json.loads(), som konverterer JSON-strengen til en Python-ordbog.

# 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

Læser JSON fra en fil

For at læse JSON-data fra en fil skal du bruge metoden json.load(). Denne metode læser indholdet af en fil og konverterer den til en Python-ordbog.

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

print(data)

Skrivning af JSON-data

Du kan skrive JSON-data til en streng eller en fil. Metoden json.dumps() bruges til at konvertere et Python-objekt til en JSON-streng, mens json.dump() bruges til at skrive JSON-data til en fil.

Skriver JSON til en streng

For at skrive JSON til en streng skal du bruge metoden json.dumps(), som konverterer en Python-ordbog til en JSON-streng.

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

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

Skriver JSON til en fil

For at skrive JSON-data til en fil skal du bruge metoden json.dump(). Denne metode tager et Python-objekt og skriver det til en fil i JSON-format.

# 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)

Pretty-Printing JSON-data

json.dumps()-metoden har flere parametre, der giver dig mulighed for at formatere JSON-data for bedre læsbarhed. Parameteren indent specificerer antallet af mellemrum, der skal bruges til indrykning, mens parameteren sort_keys ​​sorterer nøglerne i outputtet.

# 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)

Konvertering mellem JSON- og Python-datatyper

Pythons json-modul kan håndtere forskellige datatyper og konvertere dem mellem JSON og Python. Her er en hurtig reference:

  • dict (Python) til objekt (JSON)
  • liste (Python) til array (JSON)
  • str (Python) til string (JSON)
  • int, float (Python) til nummer (JSON)
  • Sand, Falsk (Python) til sand, falsk (JSON)
  • Ingen (Python) til null (JSON)

Håndtering af JSON-fejl

Mens du arbejder med JSON, kan der opstå fejl på grund af forkert formatering eller uventede data. json-modulet rejser undtagelser som JSONDecodeError, når det støder på sådanne problemer. Brug try og undtagen blokke til at håndtere disse fejl elegant.

# 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}")

Konklusion

At arbejde med JSON-data er en grundlæggende færdighed for Python-udviklere, især inden for webudvikling og datavidenskab. json-modulet giver brugervenlige metoder til at læse, skrive og manipulere JSON-data. Ved at mestre disse teknikker kan du effektivt håndtere JSON-data i dine Python-applikationer.