Python - 使用多处理解析 gzip json

问题描述 投票:0回答:1

我有一个 gzip json 文件,我想使用多处理并行解析它。

如何打开 gzip 文件,对于多处理库中的每个进程,我会从中读取一行并根据需要进行解析。

换句话说,我将打开一个 gzip 文件(将其想象成一个队列)和 4 个进程将使用这些行并对其进行解析。 所以如果我在这个文件中有 1000000 行 json,每个进程将消耗大约 250000 行。

文件包含 JSON 字符串,每行一个。像这样:

{“键”:值} {“核心价值} . . .

python multithreading multiprocessing
1个回答
0
投票

这是您正在寻找的功能的简单基本框架:

import gzip
from concurrent.futures import ProcessPoolExecutor as Executor

def parse(line):
    print(f'Parsing: {line}')

with Executor(4) as e:
    with gzip.open('input.gz') as f:
        for line in f:
            e.submit(parse, line.decode())

上面的代码,正如您指定的那样,打开 gzip 文件并逐行将文件的完整内容交给一个包含四个进程的池。

© www.soinside.com 2019 - 2024. All rights reserved.