簡體   English   中英

function from_dict() 在 python 中因未知原因失敗

[英]function from_dict() failing for unknown reason in python

我使用https://json2csharp.com/code-converters/json-to-python將以下 JSON 轉換為數據類:

{
"bypassCd": [
            "Duis sint ipsum in",
            "consequat"
          ] 
}

它在數據類下方生成 - 由於某種原因,它顯示錯誤 at.from_dict() 方法,我無法弄清楚。 請指教

from typing import List
from typing import Any
from dataclasses import dataclass
import json

@dataclass
class Root:
    bypassCd: List[str]

    @staticmethod
    def from_dict(obj: Any) -> 'Root':
        _bypassCd = [.from_dict(y) for y in obj.get("bypassCd")]
        return Root(_bypassCd)


# Example Usage
jsonstring = json.loads(''' 
{
        "bypassCd": [
            "Duis sint ipsum in",
            "consequat"
        ] }
''')

root = Root.from_dict(jsonstring)
print(root)

錯誤:

 File "/local_home/afxx1285/pyprograms/test2.py", line 11
    _bypassCd = [.from_dict(y) for y in obj.get("bypassCd")]
                 ^
 SyntaxError: invalid syntax

這是我想出的,但很難說它是否符合您的需求。 我不明白為什么它要從from_dict from_dict

from typing import Mapping, List
from dataclasses import dataclass
import json

@dataclass
class Root:
    bypassCd: List[str]

    @staticmethod
    def from_dict(obj: Mapping) -> 'Root':
        _bypassCd = obj.get("bypassCd", [])
        return Root(_bypassCd)


# Example Usage
my_dict = json.loads('''
{
    "bypassCd": [
        "Duis sint ipsum in",
        "consequat"
    ]
}
''')

root = Root.from_dict(my_dict)
print(root)

您在這一行收到SyntaxError

_bypassCd = [.from_dict(y) for y in obj.get("bypassCd")]

...因為您正在嘗試運行from_dict的方法/函數,但您還沒有寫 which object 持有這個 function。您可以在 function 調用之前指定一個 object :

obj.from_dict(y)

我想你想要做的是遞歸調用Root.from_dict function,所以你應該寫:

Root.from_dict(y)

這仍然會引發錯誤,因為您的算法需要進行一些更改,但這可以回答您最初的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM