Python'da birden çok (anahtar kelime) bağımsız değişkenle [yinelenen] çoklu işlem
Jan 11 2021
Çoklu işlemde aynı anda 2 json dosyası kaydetmeye çalışıyorum. Bunun için önce diziyi serileştirmem gerekiyor. Ne zaman atama cls=NumpyArrayEncode
sınıf args
biz atanamıyor çünkü o çoklu işlem içinde Şu hatayı alıyorum cls=NumpyArrayEncode
nedeniyle eşit muhtemelen =
oturum açma args
çoklu işlem içinde.
Aşağıda sadece bir işlem için kodum var. İkinci süreç için fikir aynı.
# 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=NumpyArrayEncode
Çoklu işlemede argüman olarak nasıl eklenir ?
Nazik öneri arıyorum
Yanıtlar
1 sim Jan 11 2021 at 14:49
İki seçenek: kwargs
Parametreyi kullanın ( anahtar kelime bağımsız değişkenlerini iletmek için multiprocessing.Processbelgelere bakın :
multiprocessing.Process(target=json.dump,
args=(json_data, fn),
kwargs={"cls": NumpyArrayEncoder})
veya kullanıyorsun functools.partial:
multiprocessing.Process(target=functools.partial(json.dump, cls=NumpyArrayEncoder),
args=(json_data, fn))
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı