gpt4 book ai didi

python - 如何以多线程方式将 Python Dict 转换为 JSON

转载 作者:行者123 更新时间:2023-11-30 23:44:09 25 4
gpt4 key购买 nike

我有许多大文件,其中有数千行,采用 python dict 格式。我正在使用 json.dumps 将它们转换为 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()

我不太明白 Pool 的作用,你能解释一下吗?

最佳答案

我不知道有什么简单的方法可以让您从多线程中获得加速,但是如果您确实想要任何类型的加速,那么我建议尝试使用 ujson 包而不是 json。它为我带来了非常显着的加速,而且基本上是免费的。使用它的方式与使用常规 json 包的方式相同。

http://pypi.python.org/pypi/ujson/

关于python - 如何以多线程方式将 Python Dict 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251669/

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