1

我有.ndjson20GB 的文件,我想用 Python 打开。文件太大了,所以我找到了一种方法,可以用一个在线工具将它分成 50 个和平。这是工具:https://pinetools.com/split-files

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

我正在尝试将它作为 json 或 csv 文件打开,以便在 pandas 中读取它,但它不起作用。你知道如何解决这个问题吗?

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)

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

4

2 回答 2

4

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

根据这个问题你可以做某事。像这样阅读它。

import ujson as json
import pandas as pd

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

PS:此代码的所有学分都来自 Github Issue 的 KristianHolsheimer

于 2020-08-20T08:37:28.050 回答
2

ndjson 现在支持开箱即用的参数lines=True

import pandas as pd

df = pd.read_json('/path/to/records.ndjson', lines=True)
df.to_json('/path/to/export.ndjson', lines=True)
于 2021-11-23T11:45:16.933 回答