如何在Python中打开.ndjson文件?

问题描述

我有一个.ndjson文件,该文件有20 GB我想用Python打开。文件很大,所以我找到了一种方法,可以使用一个在线工具将其分成50个部分。这是工具:https://pinetools.com/split-files

现在我得到一个扩展名为.ndjson.000文件(我不知道那是什么)

我正在尝试以json或csv文件的形式打开它,以在熊猫中读取它,但是它不起作用。 你有解决的办法吗?

import json
import pandas as pd

第一种方法

df = pd.read_json('dump.ndjson.000',lines=True)

错误ValueError: Unmatched ''"' when when decoding 'string'

第二种方法

with open('dump.ndjson.000','r') as f:

     my_data = f.read() 

print(my_data)

错误json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 104925061 (char 104925060)

我认为问题是我的文件中有一些表情符号,所以我不知道如何编码?

解决方法

我认为pandas.read_json无法正确处理ndjson。

根据此issue,您可以做某事。像这样阅读。

import ujson as json
import pandas as pd

records = map(json.loads,open('/path/to/records.ndjson'))
df = pd.DataFrame.from_records(records)

P.S:此代码的所有功劳归于Github Issue的KristianHolsheimer