gpt4 book ai didi

python - json.dump 一个 concurrent.futures.Future()?

转载 作者:太空狗 更新时间:2023-10-30 01:13:27 24 4
gpt4 key购买 nike

假设我有一些 future :

f = concurrent.futures.Future()
data = [f]

最终我想将它们转储到 JSON 中,并且我保证届时 futures 已经解决:

f.set_result(42)
json.dumps(data)

我怎么才能把这两个结合起来呢?

最佳答案

覆盖 JSONEncoder 类并在 Future 实例上调用 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 = [o.result() if isinstance(o, concurrent.futures.Future) else o for o in data]

或者就地修改data:

for i, o in enumerate(data):
if isinstance(o, concurrent.futures.Future):
data[i] = o.result()

关于python - json.dump 一个 concurrent.futures.Future()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com