Python Academy · Lektion

JSON-kodning och avkodning

Använd json.loads, json.dumps och json.load/dump för JSON-in- och utdata.

Lektion 1 av 414 steg

JSON-kodning och avkodning är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Introduktion

Pythons json-modul konverterar mellan Python-objekt och JSON-strängar eller filer med enkla och konsekventa funktioner.

json.dumps()

json.dumps(obj) serialiserar ett Python-objekt till en JSON-sträng. indent=2 skriver ut det på ett läsbart sätt.
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

json.loads(s) tolkar en JSON-sträng till ett Python-objekt. JSON-objekt blir dict och arrayer blir listor.
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() till fil

json.dump(obj, file_object) serialiserar direkt till en fil. Du behöver inte först spara en sträng.
import json, tempfile, os
tmp = tempfile.mktemp(suffix='.json')
with open(tmp, 'w') as f:
    json.dump({'x': 1}, f, indent=2)
print(open(tmp).read())
os.unlink(tmp)

json.load() från fil

json.load(file_object) tolkar JSON direkt från ett öppet filobjekt.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

Mappning av JSON-typer

JSON object→dict. array→list. string→str. number→int/float. true/false→True/False. null→None.
import json
s = '[1, "two", true, null, {"a": 3.14}]'
print(json.loads(s))

Typer som inte kan serialiseras

datetime, set och bytes kan inte serialiseras till JSON. Ange en default=-funktion eller skapa en underklass av JSONEncoder.
import json
from datetime import datetime
def default(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError(f'{type(obj)} not serializable')
print(json.dumps({'ts': datetime.now()}, default=default))

sort_keys och separators

sort_keys=True sorterar dict-nycklar. separators=(',', ':') tar bort blanksteg för kompakt utdata.
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

Formaterad utskrift

json.dumps(obj, indent=4, ensure_ascii=False) skapar läsbar JSON där Unicode-tecken bevaras.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

json.loads(invalid) orsakar json.JSONDecodeError. Omslut alltid tolkning av användarindata med try/except.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

Uppdatera JSON-filer

Läs → ändra → skriv tillbaka: standardmönstret för att uppdatera en JSON-konfigurationsfil.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

Snabbkontroll

Vilken funktion tolkar en JSON-sträng till ett Python-objekt?

Sammanfattning

json.dumps/loads för strängar, json.dump/load för filer. Typer: object→dict, array→list, null→None. Anpassad serialisering via en default=-funktion.

Fortsätt

Fortsätt så! Gå vidare till nästa lektion.
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”JSON-kodning och avkodning” gratis?

Ja – hela texten till ”JSON-kodning och avkodning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”JSON-kodning och avkodning”?

Använd json.loads, json.dumps och json.load/dump för JSON-in- och utdata. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”JSON-kodning och avkodning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. JSON-kodning och avkodning
  2. Hantera nästlade JSON-strukturer
  3. Läsa CSV med csv.reader
  4. Skriva CSV med csv.DictWriter
← Tillbaka till Python Academy