Nyckelord: JSON

JavaScript Object Notation (JSON) är ett av de mest populära formaten för datautbyte på webben. JSON är enkelt, lättläst och används ofta för att överföra data mellan en server och en webbapplikation samt för att strukturera data. För Python-utvecklare är det mycket användbart att förstå hur man arbetar med JSON, eftersom det ofta används vid interaktion med API:er och andra tjänster. I denna artikel kommer vi gå igenom vad JSON är, hur man hanterar JSON-data i Python, och visa hur vi strukturerar data igenom flera exempel.
Vad är JSON?
JSON är ett textbaserat format som är baserat på JavaScript-objektnotation, men det är språkoberoende och stöds av många programmeringsspråk, inklusive Python. JSON representerar data i ett strukturerat format som består av nyckel-värde-par, listor och andra standarddatatyper. Här är ett enkelt exempel på JSON-data:
{
"name": "Anna",
"age": 28,
"city": "Stockholm",
"hobbies": ["reading", "gaming", "hiking"]
}
I detta exempel är name, age, city och hobbies nycklar (keys), medan värdena (values) är "Anna", 28, "Stockholm" och en lista över hobbies. Ett JSON-objekt börjar och slutar alltid med måsvingar {}.
Sammanfattning:
- JSON står för JavaScript Object Notation.
- Det är ett textbaserat format för datautbyte som är lätt att läsa och skriva.
- JSON används för att representera strukturerad data med nyckel-värde-par.
Hur laddar och sparar man JSON i Python?
Python har ett inbyggt bibliotek som heter json för att hantera JSON-data. Med detta bibliotek kan du enkelt konvertera mellan Python-objekt och JSON-strängar. Vi börjar med att se hur man laddar (läser) JSON-data från en sträng eller en fil och hur man sparar (skriver) JSON-data till en fil.
Ladda JSON från en textsträng
Om du har JSON-data i form av en sträng kan du använda json.loads() för att konvertera den till ett Python-objekt. Här är ett exempel:
import json
json_data = '{"name": "Anna", "age": 28, "city": "Stockholm"}'
python_obj = json.loads(json_data)
print(python_obj)
print(python_obj['name'])
Vilket ger utskriften:
{'name': 'Anna', 'age': 28, 'city': 'Stockholm'}
Anna
I detta exempel kommer python_obj att vara en Python-dictionary som innehåller samma data som JSON-strängen och du kan enkelt hämta ett specifikt värde genom att ange nyckeln inom hakparenteser ['name'].
Ladda JSON från en fil
Om du har JSON-data sparad i en fil kan du använda json.load() för att läsa in den. Här är ett exempel:
import json
with open('data.json', 'r', encoding='utf-8') as file:
python_obj = json.load(file)
print(python_obj)
I detta fall öppnar vi en fil som heter data.json, läser in innehållet och konverterar det till en Python-dictionary. Filen data.json innehåller JSON-datan, exempelvis:
{
"name": "Olof",
"age": 3,
"city": "Göteborg",
"hobbies": ["reading", "gaming", "hiking"]
}
Spara JSON till en Fil
För att spara ett Python-objekt som JSON i en fil kan du använda json.dump(). Här är ett exempel:
import json
python_obj = { "name": "Anna", "age": 28, "city": "Stockholm" }
with open('output.json', 'w', encoding='utf-8') as file:
json.dump(python_obj, file, indent=4, ensure_ascii=False)
Här skapar vi en Python-dictionary och sparar den som JSON i en fil som heter output.json. Vi använder också indent=4 för att göra JSON-data lättläst genom att indentera den (indrag). Testa gärna själv att ändra värdet på indent och se hur formateringen i output.json skiljer sig.
Sammanfattning:
- Använd
json.loads()för att konvertera en JSON-sträng till ett Python-objekt. - Använd
json.load()för att läsa JSON-data från en fil och konvertera det till ett Python-objekt. - Använd
json.dump()för att spara ett Python-objekt som JSON i en fil.
Konvertera mellan python-objekt och JSON-strängar
För att konvertera ett Python-objekt till en JSON-sträng använder du json.dumps(). Detta är användbart när du vill skicka data över nätverket eller spara den som en JSON-sträng.
Konvertera Python-objekt till JSON-sträng
Här är ett exempel på hur man gör detta:
import json
python_obj = { "name": "Anna", "age": 28, "city": "Stockholm" }
json_str = json.dumps(python_obj, indent=4)
print(json_str)
I detta exempel kommer json_str att innehålla JSON-data i strängformat, som du kan skriva ut eller skicka till en server.
{
"name": "Anna",
"age": 28,
"city": "Stockholm"
}
Vanliga frågor och svar om JSON i Python

Här är några vanliga frågor och svar som nybörjare ofta har om att arbeta med JSON i Python:
json.load() används för att läsa JSON-data från en fil, medan json.loads() används för att läsa JSON från en sträng.
Ja, men du måste definiera hur din klass ska konverteras till JSON, till exempel genom att skapa en anpassad kodare eller implementera en metod som returnerar en serialiserbar version av objektet.
Använd parametern indent i json.dumps() eller json.dump() för att indentera JSON-data och göra den lättare att läsa.
Slutsats: JSON i Python
Att arbeta med JSON i Python är både enkelt och kraftfullt tack vare det inbyggda json-biblioteket. Genom att förstå grunderna i hur man laddar, sparar och konverterar JSON-data kan du effektivt hantera data i dina Python-projekt. Oavsett om du bygger en webbapplikation, arbetar med API eller bara vill lagra data i ett strukturerat format, kommer kunskap om JSON att vara ovärderlig.