我有許多帶有數千行python dict格式的大文件。我使用json.dumps將它們轉換爲json字符串。如何以多線程的方式將Python字典轉換爲JSON
import json
import ast
mydict = open('input', 'r')
output = open('output.json', "a")
for line in mydict:
line = ast.literal_eval(line)
line = json.dumps(line)
output.write(line)
output.write("\n")
但是,它的工作原理完美無瑕,但它是以單線程的方式完成的。有沒有一種簡單的方法來利用我係統中的其餘內核來加快速度?
編輯:
基於我與多庫在這裏開始的建議:
import os
import json
import ast
from multiprocessing import Process, Pool
mydict = open('twosec.in', 'r')
def info(title):
print title
print 'module name:', __name__
print 'parent process: ', os.getppid()
print 'process id:', os.getpid()
def converter(name):
info('converter function')
output = open('twosec.out', "a")
for line in mydict:
line = ast.literal_eval(line)
line = json.dumps(line)
output.write(line)
output.write("\n")
if __name__ == '__main__':
info('main line')
p = Process(target=converter, args=(mydict))
p.start()
p.join()
我不太明白的地方池進場時,你能解釋一下嗎?
這裏的瓶頸可能是I/O,所以我懷疑你會得到什麼好處使用多個線程來執行*轉換*。 – poke 2012-04-20 18:40:44