python dict或JSON转对象通用方法
时间: 2023-10-11 07:24:23 浏览: 194
python对象与json相互转换的方法
在Python中,可以使用`json`模块将JSON字符串转换为Python对象,也可以使用`ast.literal_eval()`将符合Python语法的字符串转换为Python对象。
对于字典,可以直接将字典作为参数传递给Python类的构造函数,或者使用`setattr()`函数将字典的键值对作为对象的属性和值进行设置。
以下是一个示例代码:
```python
import json
import ast
# JSON字符串转对象
json_str = '{"name": "Alice", "age": 25}'
obj = json.loads(json_str)
print(obj) # {'name': 'Alice', 'age': 25}
# 字典转对象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
dict_obj = {'name': 'Bob', 'age': 30}
person = Person(**dict_obj)
print(person.name, person.age) # Bob 30
# 使用setattr()函数将字典的键值对作为对象的属性和值进行设置
person = Person('', 0)
for key, value in dict_obj.items():
setattr(person, key, value)
print(person.name, person.age) # Bob 30
# 符合Python语法的字符串转对象
str_obj = "{'name': 'Charlie', 'age': 35}"
obj = ast.literal_eval(str_obj)
person = Person(**obj)
print(person.name, person.age) # Charlie 35
```
阅读全文