Python JSON文件读取生成器(多行)

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

我有一堆带有多行的json文件,看起来像这样:

file1

{"id":1,"name":"Eric","height":1.80, ...},
{"id":2,"name":"Bob","height":1.90, ...}   
...

file2

{"id":3,"name":"Jenny","height":1.50, ...},
{"id":4,"name":"Marlene","height":1.60, ...} 
...

我想构建一个生成器以将每一行作为字典生成。我当前的代码:

from typing import Iterator, Dict, Any, Optional
import io
import os

def json_gen2(file_list: list) -> Iterator[Dict[str, Any]]:
    import json
    for file in file_list:    
        with open(file) as json_file: 
            data = []
            for line in json_file:
                data = json.load(line)
                if not data:
                    break
                yield data

datapath = os.path.normcase(os.getcwd()) + '/data/log_data'
file_list = get_files(datapath) # create path list of json files
jsonfile = json_gen2(file_list)
next(jsonfile)    

我得到以下Error Message

请帮助:)

python json generator multiline
1个回答
0
投票

糟糕,我误读了。你在做我说的同样的话。您的错误是由于使用“负载”而不是“负载”。每行由

返回
for line in json_file:
    data = json.load(line)

是一个字符串,您正尝试将其作为文件指针读取。

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