JSON (JavaScript Object Notation) is a lightweight, text-based format for data exchange. Python's built-in
json
module allows easy reading, writing, and manipulation of JSON data.
json
ModuleJSONEncoder
and JSONDecoder
.import json
data = {'name': 'Alice', 'age': 30, 'city': 'New York'}
json_str = json.dumps(data)
print(json_str)
import json
json_str = '{"name": "Bob", "age": 25, "city": "Chicago"}'
data = json.loads(json_str)
print(data['name'])
import json
data = {'name': 'John', 'age': 40, 'city': 'Boston'}
with open('data.json', 'w') as f:
json.dump(data, f)
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
import json
data = {'name': 'Eve', 'age': 22, 'languages': ['Python', 'JavaScript']}
json_str = json.dumps(data, indent=4)
print(json_str)
import json
data = {'name': 'José', 'city': 'München'}
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def person_encoder(obj):
if isinstance(obj, Person):
return {'name': obj.name, 'age': obj.age}
raise TypeError('Object not serializable')
p = Person('Anna', 28)
json_str = json.dumps(p, default=person_encoder)
print(json_str)
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def person_decoder(d):
return Person(d['name'], d['age'])
json_str = '{"name": "Anna", "age": 28}'
p = json.loads(json_str, object_hook=person_decoder)
print(p.name, p.age)
import json
json_str = '[{"name": "Alice"}, {"name": "Bob"}, {"name": "Charlie"}]'
data = json.loads(json_str)
for item in data:
print(item['name'])
import json
def set_encoder(obj):
if isinstance(obj, set):
return list(obj)
raise TypeError('Type not serializable')
data = {'numbers': {1, 2, 3}}
json_str = json.dumps(data, default=set_encoder)
print(json_str)