pandas read_json for multi line jsons 返回 JSONReader 而不是数据帧



我有一个文件file1.json其内容是这样的(每个字典在单独的行中):

{"a":1,"b":2}
{"c":3,"d":4}
{"e":9,"f":6}
.
.
.
{"u":31,"v":23}
{"w":87,"x":46}
{"y":98,"z":68}

我想将此文件加载到 pandas 数据帧中,所以我就是这样做的:

df = pd.read_json('../Dataset/file1.json', orient='columns', lines=True, chunksize=10)

但是,这不会返回数据帧,而是返回 JSONReader。

[IN]: df
[OUT]: <pandas.io.json.json.JsonReader at 0x7f873465bd30>

是正常,还是我做错了什么?如果这就是 read_json() 在单个 json 文件中有多个字典(没有任何逗号分隔)并且每个字典都在单独的行中时的行为方式,那么我如何才能最好地将它们放入数据帧中?

编辑: 如果我从 read_json() 中删除chunksize参数,这就是我得到的:

[IN]: df = pd.read_json('../Dataset/file1.json', orient='columns', lines=True)
[OUT]: ValueError: Expected object or value

正如文档所解释的那样,这正是chunksize参数的重点:

区块大小:整数,默认值为无

返回JsonReader对象进行迭代。有关chunksize的更多信息,请参阅行删除的 json 文档。仅当lines=True时,才能传递此内容。如果为"无",则文件将一次全部读入内存。

链接的文档说:

对于行分隔的 json 文件,pandas 还可以返回一次读取chunksize行的迭代器。这对于大文件或从流中读取非常有用。

。然后举例说明如何使用它。

如果你不想这样,你为什么要通过chunksize?就算了。

最新更新