Python中具有多个(关键字)参数的多处理

Python中具有多个(关键字)参数的多处理,python,multiprocessing,Python,Multiprocessing,我试图在多处理中同时保存2个json文件。 首先,我需要序列化数组。当我在多处理中的args中分配cls=numpyarayencode类时,我得到了一个错误,因为我们无法分配cls=numpyarayencode可能是由于在多处理中等于=登录args 下面是我只针对一个进程的代码。对于第二个过程的想法是相同的 # json serialization class NumpyArrayEncode(JSONEncoder): def default(self, o): i

我试图在多处理中同时保存2个json文件。 首先,我需要序列化数组。当我在多处理中的
args
中分配
cls=numpyarayencode
类时,我得到了一个错误,因为我们无法分配
cls=numpyarayencode
可能是由于在多处理中等于
=
登录
args

下面是我只针对一个进程的代码。对于第二个过程的想法是相同的

# json serialization
class NumpyArrayEncode(JSONEncoder):
    def default(self, o):
        if isinstance(o, np.ndarray):
            returno.tolist()
        return JSONEncoder.default(self, o)

json_data = np.array([[3, 5, 6], [8, 12, 6]]) # example

with open('test.json', 'w') as fn:
    p1 = multiprocessing.Process(target = json.dump, args=(json_data, fn, cls=NumpyArrayEncode)) # here is problem that we can't add equal `=` sign in `args` in multiprocessing. 
如何在多处理中添加
cls=numpyarayencode
作为参数


查找种类建议

两个选项:使用
kwargs
参数(请参见传递关键字参数:

multiprocessing.Process(target=json.dump,
                        args=(json_data, fn),
                        kwargs={"cls": NumpyArrayEncoder})
或者您使用:


实际上不是。我已经读过上面提到的帖子,但它和我的问题不同。
multiprocessing.Process(target=functools.partial(json.dump, cls=NumpyArrayEncoder),
                        args=(json_data, fn))