【发布时间】:2019-12-27 21:47:53
【问题描述】:
我有以下问题。我尝试使用make_dataclass 函数从SQL 查询结果创建dataclass。假设我的记录是这样的:
import dataclasses
record = {
'name': 'asdasd',
'age': None,
'is_active': bytes(1),
'is_admin': bytes(0),
'amount': 1
}
def make_field(k, v):
t = type(v)
if isinstance(v, bytes):
t = bool
return k, t
Record = dataclasses.make_dataclass('Record', [make_field(k, v) for k, v in record.items()])
然后如果 value 是一个字节,我想用 bool 代替。但结果如下:
Record(name='asdasd', age=None, is_active=b'\x00', is_admin=b'', amount=1)
我有两个问题:
- 为什么它仍然是字节?因为 bool 也是字节?
- 有没有更好的方法来代替
r.is_active = bool(r.is_active)?
谢谢
【问题讨论】:
标签: python python-3.x python-dataclasses