下面是关于“Python Json序列化与反序列化的示例”的完整攻略。
Json序列化与反序列化
什么是Json
Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人们阅读和编写,同时也易于机器解析和生成。Json使用纯文本表示结构化数据,可被所有编程语言读取和理解。
Json序列化
Json序列化是指将一个对象转化为Json字符串的过程。在Python中,需要使用json
模块来完成序列化操作。
以下是一个将Python字典对象序列化为Json字符串的示例:
import json
data = {
'name': 'John',
'age': 35,
'city': 'New York'
}
json_data = json.dumps(data)
print(json_data)
# 输出: {"name": "John", "age": 35, "city": "New York"}
在上面的示例中,使用json.dumps()
方法对Python字典对象进行序列化,并将序列化后的结果存储在一个变量中。最后,使用print()
函数将序列化后的Json字符串输出。需要注意的是,序列化后的Json字符串中,所有的键(key)都必须用双引号包裹,否则会抛出异常。
Json反序列化
Json反序列化是指将一个Json字符串转化为对应的对象的过程。在Python中,需要使用json
模块来完成反序列化操作。
以下是一个将Json字符串反序列化为Python字典对象的示例:
import json
json_data = '{"name": "John", "age": 35, "city": "New York"}'
data = json.loads(json_data)
print(data)
# 输出: {'name': 'John', 'age': 35, 'city': 'New York'}
在上面的示例中,使用json.loads()
方法对Json字符串进行反序列化,并将反序列化后的结果存储在一个变量中。最后,使用print()
函数将反序列化后的Python字典对象输出。
示例说明
以下是一个更加完整的示例,包括Json序列化和反序列化操作:
import json
# 定义一个类
class Person:
def __init__(self, name, age, city):
self.name = name
self.age = age
self.city = city
# 定义一个对象
person = Person('John', 35, 'New York')
# 对象序列化
json_data = json.dumps(person.__dict__)
print(json_data)
# 输出: {"name": "John", "age": 35, "city": "New York"}
# Json字符串反序列化
data = json.loads(json_data)
print(data)
# 输出: {'name': 'John', 'age': 35, 'city': 'New York'}
# 将反序列化后的对象转化为类实例
person = Person(**data)
print(person.name)
# 输出: John
在上面的示例中,首先定义了一个Person
类,然后创建了一个Person
对象并进行序列化操作,将序列化后的结果存储在一个变量中。接着,使用json.loads()
方法将序列化后的Json字符串进行反序列化,得到一个Python字典对象。最后,将Python字典对象直接传递给构造函数,通过参数解包的方式创建了一个新的Person
对象,并访问了其属性来验证反序列化效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Json序列化与反序列化的示例 - Python技术站