json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 235)

Bug: json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 235)
原因:json文件太大,json.load(f)导致的错误。
解决:按字符串的形式一行行的读取,然后利用 json.loads(line) 转化为json的格式来处理。

def read_json(data_path, stage, key_1, key_2):
    iter, acc_seg = [], []
    with open(data_path, 'r') as f:
        # content = json.load(f) #报错
        content = f.readlines() 
        for line in content:
            if json.loads(line)["mode"] == stage:
                iter.append(json.loads(line)[key_1])
                acc_seg.append(json.loads(line)[key_2])
    return iter, acc_seg

你可能感兴趣的:(Bug,json,bug)