令狐少侠 发表于 2018-9-19 14:21:01

ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 16...

我试图在Python中加载和解析JSON文件。:
import json
json_data = open('file')
data = json.load(json_data)
报了如下的错误
ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 160128774)

此间少年 发表于 2018-9-19 14:26:23

说明你有一个JSON Lines格式的文本文件。你需要逐行解析文件:
import json

data = []
with open('file') as f:
    for line in f:
      data.append(json.loads(line))
每行包含有效的JSON,但作为一个整体,它不是有效的JSON值,因为没有外层的列表或对象。
请注意,因为该文件每行包含JSON,所以你可以省去尝试一次性解析它或者找出流式JSON解析器的麻烦。你现在可以选择单独处理每一行,然后再继续下一步,从而节省内存。你可能不希望将每个结果附加到一个列表中,然后在文件非常大的情况下处理所有内容。
如果你有一个包含单个JSON对象的文件,其间有分隔符,请使用如何使用'json'模块一次读入一个JSON对象?使用缓冲方法解析单个对象。

此间少年 发表于 2018-9-19 14:27:17

这是因为jso文件格式不对。每行有一个JSON对象,但它们没有包含在更大的数据结构(即数组)中。你需要重新格式化它给每行末尾添加逗号,给头添加[,给尾添加]。或者逐行解析它作为单独的字典。
页: [1]
查看完整版本: ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 16...