Python Academy · leksjon

JSON-koding og -dekoding

Bruk json.loads, json.dumps og json.load/dump til JSON-inndata og -utdata.

Leksjon 1 av 414 trinn

JSON-koding og -dekoding er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Innledning

Pythons json-modul konverterer mellom Python-objekter og JSON-strenger eller -filer med enkle og konsekvente funksjoner.

json.dumps()

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

json.loads()

json.loads(s) analyserer en JSON-streng til et Python-objekt. JSON-objekter blir til dict-er, og arrayer blir 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. De trenger ikke å lagre en streng først.
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) analyserer JSON direkte fra et åpent filobjekt.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

Tilordning 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 ikke kan serialiseres

datetime, set og bytes kan ikke serialiseres til JSON. Oppgi en default=-funksjon eller lag en underklasse 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 og separators

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

Formatering med innrykk

json.dumps(obj, indent=4, ensure_ascii=False) produserer lesbar JSON der Unicode-tegn bevares.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

json.loads(invalid) utløser json.JSONDecodeError. Omslutt alltid analysen i try/except når De behandler inndata fra brukere.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

Oppdatere JSON-filer

Les → endre → skriv tilbake: standardmønsteret for å oppdatere en JSON-konfigurasjonsfil.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

Kunnskapssjekk

Hvilken funksjon analyserer en JSON-streng til et Python-objekt?

Oppsummering

json.dumps/loads for strenger, json.dump/load for filer. Typer: object→dict, array→list, null→None. Tilpasset serialisering via default=-funksjon.

Fortsett

Fortsett slik! Gå videre til neste leksjon.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «JSON-koding og -dekoding» gratis?

Ja – hele teksten i «JSON-koding og -dekoding» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «JSON-koding og -dekoding»?

Bruk json.loads, json.dumps og json.load/dump til JSON-inndata og -utdata. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «JSON-koding og -dekoding»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. JSON-koding og -dekoding
  2. Håndtere nestede JSON-strukturer
  3. Lese CSV med csv.reader
  4. Skrive CSV med csv.DictWriter
← Tilbake til Python Academy