Python:
Arbeider med JSON

Hvordan:

Pythons innebygde json-bibliotek forenkler prosessen med koding (konvertering av Python-objekter til JSON) og dekoding (konvertering av JSON til Python-objekter). Slik kan du bruke det:

Koding av Python-objekter til JSON:

import json

data = {
    "name": "John Doe",
    "age": 30,
    "isEmployee": True,
    "addresses": [
        {"city": "New York", "zipCode": "10001"},
        {"city": "San Francisco", "zipCode": "94016"}
    ]
}

json_streng = json.dumps(data, indent=4)
print(json_streng)

Utdata:

{
    "name": "John Doe",
    "age": 30,
    "isEmployee": true,
    "addresses": [
        {
            "city": "New York",
            "zipCode": "10001"
        },
        {
            "city": "San Francisco",
            "zipCode": "94016"
        }
    ]
}

Dekoding av JSON til Python-objekter:

json_streng = '''
{
    "name": "John Doe",
    "age": 30,
    "isEmployee": true,
    "addresses": [
        {
            "city": "New York",
            "zipCode": "10001"
        },
        {
            "city": "San Francisco",
            "zipCode": "94016"
        }
    ]
}
'''

data = json.loads(json_streng)
print(data)

Utdata:

{
    'name': 'John Doe', 
    'age': 30, 
    'isEmployee': True, 
    'addresses': [
        {'city': 'New York', 'zipCode': '10001'}, 
        {'city': 'San Francisco', 'zipCode': '94016'}
    ]
}

Arbeid med tredjepartsbiblioteker:

For kompleks JSON-håndtering, som skjemavalidering eller parsing av JSON-filer direkte fra URL-er, kan biblioteker som requests for HTTP-forespørsler og jsonschema for validering være nyttige.

Eksempel med requests for å parse JSON fra en URL:

import requests

response = requests.get('https://api.example.com/data')
data = response.json()

print(data)

Dette kodeutdraget henter JSON-data fra en angitt URL og konverterer den direkte til et Python-objekt.

Bruk av jsonschema for å validere JSON:

Først, installer biblioteket via pip:

pip install jsonschema

Deretter, bruk det på følgende måte:

from jsonschema import validate
import jsonschema

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "number"},
        "isEmployee": {"type": "boolean"},
    },
    "required": ["name", "age", "isEmployee"]
}

# Antatt at `data` er en ordbok oppnådd fra JSON-dekoding
prøv:
    validate(instance=data, schema=schema)
    print("Gyldige JSON-data.")
except jsonschema.exceptions.ValidationError as err:
    print("Valideringsfeil:", err)

Dette eksemplet validerer din Python-ordbok (opprettet fra dekodede JSON-data) mot et forhåndsdefinert skjema, for å sikre at dataene overholder forventede formater og typer.