Python 对象和 JSON 互相转换是编程中经常遇到的问题,本文将介绍 Python 中将对象转换为 JSON,以及将 JSON 转换为 Python 对象的方法。
Python 对象转换为 JSON
使用 Python 内置的 json
模块,可以将 Python 对象转换为 JSON 格式的字符串。
下面是将 Python 字典对象转换为 JSON 的示例:
import json
# Python 字典对象
data = {"name": "Tom", "age": 20}
# 将 Python 对象转换为 JSON
json_data = json.dumps(data)
# 输出转换后的 JSON 字符串
print(json_data)
输出结果为:
{"name": "Tom", "age": 20}
JSON 转换为 Python 对象
使用 Python 内置的 json
模块,可以将 JSON 格式的字符串转换为 Python 对象。
下面是将 JSON 格式的字符串转换为 Python 字典对象的示例:
import json
# JSON 格式字符串
json_data = '{"name": "Tom", "age": 20}'
# 将 JSON 格式字符串转换为 Python 对象
data = json.loads(json_data)
# 输出转换后的 Python 对象
print(data)
输出结果为:
{'name': 'Tom', 'age': 20}
自定义对象的序列化和反序列化方法
如果需要将自定义的对象转换为 JSON 格式的字符串或从 JSON 格式的字符串中获取自定义的对象,我们需要实现对象的序列化和反序列化方法。
序列化方法是指将 Python 对象转换为可以序列化为 JSON 格式字符串的 Python 对象的方法,通常为对象的 __dict__
方法。
反序列化方法是指将 JSON 格式字符串转换为自定义对象的方法,通常为自定义对象的构造函数。
下面是将自定义的 Person
对象转换为 JSON 格式字符串的示例:
import json
# 自定义的 Person 类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 序列化方法
def __dict__(self):
return {"name": self.name, "age": self.age}
# 实例化 Person 对象
p = Person("Tom", 20)
# 将 Person 对象转换为 JSON
json_data = json.dumps(p.__dict__())
# 输出转换后的 JSON 字符串
print(json_data)
输出结果为:
{"name": "Tom", "age": 20}
下面是将 JSON 格式字符串转换为自定义的 Person
对象的示例:
import json
# 自定义的 Person 类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 序列化方法
def __dict__(self):
return {"name": self.name, "age": self.age}
# 反序列化方法
@staticmethod
def from_json(json_data):
data = json.loads(json_data)
return Person(data["name"], data["age"])
# JSON 格式字符串
json_data = '{"name": "Tom", "age": 20}'
# 将 JSON 格式字符串转换为 Person 对象
p = Person.from_json(json_data)
# 输出转换后的 Person 对象
print(p.__dict__())
输出结果为:
{'name': 'Tom', 'age': 20}
以上是关于 Python 对象和 JSON 互相转换的完整攻略,希望能够帮助你解决相关问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 对象和json互相转换方法 - Python技术站