admin 管理员组

文章数量: 1087139


2024年3月29日发(作者:什么是自然数)

fast序列化json 枚举处理

在Python中,可以使用`json`模块来序列化和反序列化JSON

数据。枚举处理可以通过自定义JSONEncoder的`default`方法

来实现。

首先,让我们先导入所需的模块:

```python

import json

from enum import Enum

```

接下来,我们定义一个枚举类:

```python

class Color(Enum):

RED = 1

GREEN = 2

BLUE = 3

```

然后,我们创建一个自定义的JSONEncoder类,该类继承自

`coder`:

```python

class MyEncoder(coder):

def default(self, obj):

if isinstance(obj, Enum):

return

return super().default(obj)

```

`default`方法会在遇到无法序列化的对象时被调用。在我们的

自定义方法中,如果遇到枚举类型的对象,我们将返回其值。

最后,我们可以使用``函数来序列化一个字典,并

指定`cls`参数为我们定义的自定义`MyEncoder`类:

```python

data = {"color": }

json_data = (data, cls=MyEncoder)

print(json_data)

```

输出结果为:

```

{"color": 1}

```

如上所示,枚举类型被正确地序列化为其对应的值。


本文标签: 序列化 对象 遇到 参数 模块