在python类中解码json时将“null”转换为np.nan

v6ylcynt  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(96)

假设我有一个类似这样的玻璃:

from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass

class ToyDataclass(DataClassJsonMixin):
    name: str
    value: float

字符串
value字段可以是np.nan,这在我的设置中是有意义的。有时,我需要从序列化格式读取这些,其中np.nan的情况被存储为:'{"name": "testname", "value": null}'。问题是,当我序列化时,null被转换为None而不是np.nan
我的目标是编写一个自定义的解析器,它只是将每个null都视为np.nan。我已经尝试过几次,但都失败了。例如,这不起作用(它只是像以前一样解析为None):

from dataclasses_json import DataClassJsonMixin, config
from dataclasses import dataclass, field
class ToyDataclass(DataClassJsonMixin):
    name: str
    value: float = field(
        metadata=config(
            decoder=(lambda val: np.nan if val is None else val),
        )
    )


此外,我不能控制序列化的类中有"null",而不是"NaN"nan s。这是一个约束,我必须在我的代码库工作。任何指针将非常感谢!

brqmpdu1

brqmpdu11#

我认为这是完全不受支持的,或者是一个当前的错误,因为json 0.6.1。我已经提交了一个问题https://github.com/lidatong/dataclasses-json/issues/497

相关问题