Python JSON-文件读取生成器(多行)
Python JSON-file-reading generator (multi-line)
我有一堆 json 多行文件,如下所示:
文件 1
{"id":1,"name":"Eric","height":1.80, ...},
{"id":2,"name":"Bob","height":1.90, ...}
...
文件2
{"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
请帮忙:)
糟糕,我看错了。你做的和我说的一样。您的错误是由于使用 'load' 而不是 'loads'。
返回的每一行
for line in json_file:
data = json.load(line)
是一个字符串,您正试图将其作为文件指针读取。
我有一堆 json 多行文件,如下所示:
文件 1
{"id":1,"name":"Eric","height":1.80, ...},
{"id":2,"name":"Bob","height":1.90, ...}
...
文件2
{"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
请帮忙:)
糟糕,我看错了。你做的和我说的一样。您的错误是由于使用 'load' 而不是 'loads'。
返回的每一行for line in json_file:
data = json.load(line)
是一个字符串,您正试图将其作为文件指针读取。