i s*_*eal 6 python json python-3.x python-dataclasses
我在处理 ETL 管道时偶然发现了一个问题。我正在使用数据类dataclass来解析 JSON 对象。JSON 对象的关键字之一是保留关键字。有没有解决的办法:
from dataclasses import dataclass
import jsons
out = {"yield": 0.21}
@dataclass
class PriceObj:
asOfDate: str
price: float
yield: float
jsons.load(out, PriceObj)
Run Code Online (Sandbox Code Playgroud)
这显然会失败,因为yield是保留的。查看数据类field定义,似乎没有任何可以提供帮助的内容。
Go,允许定义JSON字段的名称,不知道里面有没有这样的功能dataclass?
您可以dataclasses_json从他们的文档中对lib使用不同的名称进行解码/编码:
from dataclasses import dataclass, field
from dataclasses_json import config, dataclass_json
@dataclass_json
@dataclass
class Person:
given_name: str = field(metadata=config(field_name="overriddenGivenName"))
Person(given_name="Alice") # Person('Alice')
Person.from_json('{"overriddenGivenName": "Alice"}') # Person('Alice')
Person('Alice').to_json() # {"overriddenGivenName": "Alice"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |