赞
踩
json
是 Python 标准库中的一个模块,用于处理 JSON(JavaScript Object Notation)数据格式。JSON 是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。json
模块提供了将 Python 对象转换为 JSON 格式的字符串(序列化)以及将 JSON 格式的字符串转换为 Python 对象(反序列化)的功能。
json.dumps()
将 Python 对象转换为 JSON 格式的字符串。
import json
data = {
"name": "Alice",
"age": 30,
"city": "New York"
}
json_string = json.dumps(data)
print(json_string)
输出:
{"name": "Alice", "age": 30, "city": "New York"}
json.loads()
将 JSON 格式的字符串转换为 Python 对象。
import json
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
输出:
{'name': 'Alice', 'age': 30, 'city': 'New York'}
json.dump()
将 Python 对象序列化为 JSON 格式并写入文件。
import json
data = {
"name": "Alice",
"age": 30,
"city": "New York"
}
with open('data.json', 'w') as f:
json.dump(data, f)
json.load()
从文件中读取 JSON 数据并转换为 Python 对象。
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
json
模块允许用户自定义对象的序列化和反序列化行为。可以通过定义 default
函数来实现自定义序列化,通过定义 object_hook
函数来实现自定义反序列化。
import json class Person: def __init__(self, name, age): self.name = name self.age = age def person_to_json(obj): if isinstance(obj, Person): return {'name': obj.name, 'age': obj.age} else: raise TypeError(f'Object of type {obj.__class__.__name__} is not JSON serializable') person = Person("Alice", 30) json_string = json.dumps(person, default=person_to_json) print(json_string)
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def json_to_person(dct):
if 'name' in dct and 'age' in dct:
return Person(dct['name'], dct['age'])
return dct
json_string = '{"name": "Alice", "age": 30}'
person = json.loads(json_string, object_hook=json_to_person)
print(person.name, person.age)
json
模块是 Python 中处理 JSON 数据的标准库,提供了丰富的功能来序列化和反序列化 JSON 数据。无论是简单的字典和列表,还是自定义的对象,json
模块都能很好地支持。通过灵活使用 json
模块,可以在 Python 程序中处理 JSON 数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。