Loo*_*ast 5 python serialization json
我有两种方法来表示Python对象json.dumps()
第一的:
person = {
"name": "John",
"age": 30,
"city": "New York"
}
Run Code Online (Sandbox Code Playgroud)
第二:
class Person:
def _init_(self, name, age, city):
self.name = name
self.age = age
self.city = city
person = Person("John", 30, "New York")
Run Code Online (Sandbox Code Playgroud)
然后我就尝试了p1 = json.dumps(person),第二种方式就说it's not JSON serializable。
那么基本上对于Python来说,json.dumps只适用于像dict对象这样的内置对象?
是的,json模块只知道如何序列化某些内置类型。使用具有“字段”的类的一种简单方法是dataclasses模块。
例子:
from dataclasses import dataclass, asdict
import json
@dataclass
class Person:
name: str
age: int
city: str
person = Person("John", 30, "New York")
print(json.dumps(asdict(person)))
Run Code Online (Sandbox Code Playgroud)
该asdict()函数将数据类实例转换为dict可以json序列化的实例。