2024-04-20 01:55:24 发布
网友
假设我有一些未来:
f = concurrent.futures.Future() data = [f]
最后,我想用JSON转储这些内容,我保证在那时解决了未来问题:
我怎么能娶这两个?在
重写JSONEncoder类并在将来的实例上调用o.result()是一种方法。在
o.result()
class CustomJSONEncoder(json.JSONEncoder): def default(self, o, *args, **kwargs): if isinstance(o, concurrent.futures.Future): return o.result() return super(CustomJSONEncoder, self).default(o, *args, **kwargs) json.dumps(data, cls=CustomJSONEncoder)
要使它在没有自定义JSONEncoder的情况下工作,您可以自己迭代数据结构,调用o.result():
或就地修改data:
data
for i, o in enumerate(data): if isinstance(o, concurrent.futures.Future): data[i] = o.result()
json.dumps([d.result() for d in data])
重写JSONEncoder类并在将来的实例上调用
o.result()
是一种方法。在要使它在没有自定义JSONEncoder的情况下工作,您可以自己迭代数据结构,调用
^{pr2}$o.result()
:或就地修改
data
:相关问题 更多 >
编程相关推荐