想要将Python中的class对象转换成JSON或字典格式,可以使用Python内置的json模块来实现。
具体步骤如下:
- 在Python中导入json模块以及定义需要转换的class类。
import json
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
# 定义一个MyClass类的一个实例
obj = MyClass('Mike', 23)
- 使用Python内置函数
vars
将obj
实例转换成字典格式。
dic_obj = vars(obj)
print(dic_obj)
# 输出: {'name': 'Mike', 'age': 23}
- 将字典格式的数据转换成JSON格式的数据。
json_obj = json.dumps(dic_obj)
print(json_obj)
# 输出: {"name": "Mike", "age": 23}
- 反向操作,将JSON格式的数据转换成Python字典,然后再将字典转换成class对象。
json_obj = '{"name": "Mike", "age": 23}'
dic_obj = json.loads(json_obj)
print(dic_obj)
# 输出: {'name': 'Mike', 'age': 23}
# 将字典转换成class对象
new_obj = MyClass(**dic_obj)
print(new_obj.name)
# 输出: Mike
print(new_obj.age)
# 输出: 23
示例说明:
示例1: 将Python中的自定义类实例(obj)转换成一个字典格式(dic_obj),然后再将这个字典格式数据转换成JSON格式(json_obj)输出。
import json
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
obj = MyClass('Mike', 23)
# 将对象转换成字典
dic_obj = vars(obj)
# 将字典转换成JSON格式输出
json_obj = json.dumps(dic_obj)
print(json_obj)
# 输出: {"name": "Mike", "age": 23}
示例2: 将JSON格式数据(json_obj)转换成Python字典数据(dic_obj),然后再将这个字典数据转换成自定义类的实例(new_obj),最终输出new_obj的name和age属性值。
import json
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
# 定义一个JSON格式的数据
json_obj = '{"name": "Mike", "age": 23}'
# 将JSON格式的数据转换成Python字典
dic_obj = json.loads(json_obj)
# 将字典数据转换成自定义类的实例
new_obj = MyClass(**dic_obj)
# 输出new_obj对象的name和age属性
print(new_obj.name)
# 输出: Mike
print(new_obj.age)
# 输出: 23
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现class对象转换成json/字典的方法 - Python技术站