multiprocessing
으로 JSON 파일을 수정하려고합니다. JSON을 여러 조각으로 나눠서 각 프로세스가 JSON의 특정 부분에만 액세스하고 수정하도록 할 수 있습니다 (따라서 두 속성이 동일한 속성을 수정하지 못하도록 보장합니다). 내 질문은 변경 사항이 원래 개체에 반영되도록 프로세스간에 JSON 개체를 공유하려면 어떻게해야합니까? 나는 multiprocessing
이 사본으로 객체를 전달하므로 Manager()
을 사용할 필요가 있지만 정확히 어떻게 할 수 있습니까? 현재 내가Python 다중 처리 - 여러 프로세스를 통해 JSON 수정
def parallelUpdateJSON(datachunk):
for feature in datachunk:
#modify chunk
def writeGeoJSON():
with open('geo.geojson') as f:
data = json.load(f)
pool = Pool()
for i in range(0, mp.cpu_count())):
#chunk data into a list, so I get listofchunks = [chunk1, chunk2, etc.,]
#where chunk1 = data[0:chunksize], chunk2 = data[chunksize:2*chunksize] etc.
pool.map(parallelUpdateJSON, listofchunks)
pool.close()
pool.join()
with open('test_parallel.geojson', 'w') as outfile:
json.dump(data, outfile)
을 가지고 있지만 원래 data
객체가 수정되지 않도록 물론 이것은 사본으로 청크를 전달합니다. data
가 프로세스에 의해 실제로 수정되도록하려면 어떻게해야합니까? 고맙습니다!
당신은 나 또한 parallelUpdateJSON''에 datachunk' 반환 '해야 할 것, 프로세스가 결과를 – BlackBear