我正在编写一个访问REST API的库。它返回带有用户对象的json。我将其转换为dict,然后将其转换为dataclass对象。问题在于,并非所有字段都是固定的。我想动态添加其他字段(在我的数据类中未指定)。我可以简单地为我的对象分配值,但是它们不会出现在对象表示中,并且dataclasses.asdict
函数不会将它们添加到结果字典中:
from dataclasses import asdict, dataclass
@dataclass
class X:
i: int
x = X(i=42)
x.s = 'text'
x
# X(i=42)
x.s
# 'text'
asdict(x)
# {'i': 42}
答案 0 :(得分:3)
您可以使用make_dataclass
即时创建$ pip install sortedcontainers
:
from sortedcontainers import SortedDict
def find_nearest(sorted_dict, lookup):
key = sorted_dict.iloc[sorted_dict.bisect_left(lookup) - 1]
return sorted_dict[key]
sd = SortedDict({0: '0', 4: '4', 8: '8', 12: '12'})
print(find_nearest(sd, 4)) # 0
print(find_nearest(sd, 3)) # 0
print(find_nearest(sd, 12)) # 8
或作为派生类:
X