0

我有一个json要反序列化的文件。这是文件的结构:

{ "functions":[
    {
        "name": "Generate Random Numbers To File",
        "function": "generateRandomNumbersToFile",
        "description": "Generates a file containing randomly generated numbers",
        "parameters": {
            "args": [
                {
                    "name": "length",
                    "value": 100
                }
            ],
            "kwargs": [
                {
                    "name": "min_value",
                    "value": 2
                },
                {
                    "name": "max_value",
                    "value": 4
                }
            ]
        }
    }
]}

我在某些字段的反序列化方面遇到问题。我知道name,functiondescription将是strings但 的value可能parametersint在这种情况下或string如果它是一条路径。

这就是我的序列化程序现在的样子:

import colander

class Arg(colander.MappingSchema):
    name = colander.SchemaNode(colander.String())
    value = colander.SchemaNode()  # <----- What should I put here?

class Kwarg(colander.MappingSchema):
    name = colander.SchemaNode(colander.String())
    value = colander.SchemaNode()  # <----- What should I put here?

class Kwargs(colander.SequenceSchema):
    kwarg = Kwarg()

class Args(colander.SequenceSchema):
    arg = Arg()

class Paramteres(colander.MappingSchema):
    args = Args()
    kwargs = Kwargs()

class Function(colander.MappingSchema):
    name = colander.SchemaNode(colander.String())
    function = colander.SchemaNode(colander.String())
    description = colander.SchemaNode(colander.String())
    paramteres = Paramteres()

class Functions(colander.SequenceSchema):
    function = Function()

我有一种感觉,我的方法可能在团队中是错误的,或者我错过了一些东西。我在漏勺网站上找不到关于这个“未知类型”问题的任何信息

4

0 回答 0