Python Academy · Lektion

JSON-kodning og -afkodning

Brug json.loads, json.dumps og json.load/dump til JSON-I/O.

Lektion 1 af 414 trin

JSON-kodning og -afkodning er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.

Introduktion

Pythons json-modul konverterer mellem Python-objekter og JSON-strenge eller -filer ved hjælp af enkle, ensartede funktioner.

json.dumps()

json.dumps(obj) serialiserer et Python-objekt til en JSON-streng. indent=2 formaterer den overskueligt.
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

json.loads(s) fortolker en JSON-streng som et Python-objekt. JSON-objekter bliver til dicts, og arrays bliver til lister.
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() til fil

json.dump(obj, file_object) serialiserer direkte til en fil. Du behøver ikke først gemme en streng.
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() fra fil

json.load(file_object) fortolker JSON direkte fra et åbent filobjekt.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

JSON-typeafbildning

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, der ikke kan serialiseres

datetime, set og bytes kan ikke serialiseres til JSON. Angiv en default=-funktion, eller opret en underklasse af 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 og separators

sort_keys=True sorterer dict-nøgler. separators=(',', ':') fjerner mellemrum for et kompakt output.
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

Overskuelig formatering

json.dumps(obj, indent=4, ensure_ascii=False) opretter læsbar JSON, hvor Unicode bevares.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

json.loads(invalid) udløser json.JSONDecodeError. Pak altid kaldet ind i try/except, når du fortolker brugerinput.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

Opdatering af JSON-filer

Læs → redigér → skriv tilbage: standardmønstret til opdatering af en JSON-konfigurationsfil.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

Hurtigt tjek

Hvilken funktion fortolker en JSON-streng som et Python-objekt?

Opsummering

json.dumps/loads til strenge, json.dump/load til filer. Typer: object→dict, array→list, null→None. Tilpasset serialisering via en default=-funktion.

Fortsæt

Bliv ved! Gå videre til den næste lektion.
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
76
Lektioner
320

Ofte stillede spørgsmål

Er lektionen “JSON-kodning og -afkodning” gratis?

Ja — hele teksten til “JSON-kodning og -afkodning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “JSON-kodning og -afkodning”?

Brug json.loads, json.dumps og json.load/dump til JSON-I/O. Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Python Academy?

Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “JSON-kodning og -afkodning”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Python Academy-lektion?

Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. JSON-kodning og -afkodning
  2. Håndtering af indlejrede JSON-strukturer
  3. Læsning af CSV med csv.reader
  4. Skrivning af CSV med csv.DictWriter
← Tilbage til Python Academy