tag*_*aga 6 python parsing json pandas ndjson
我有.ndjson一个 20GB 的文件,我想用 Python 打开它。文件太大,所以我找到了一种方法,用一个在线工具将其分成 50 个文件。这是这个工具:https://pinetools.com/split-files
现在我得到一个文件,其扩展名.ndjson.000(我不知道那是什么)
我试图将其作为 json 或 csv 文件打开,以在 pandas 中读取它,但它不起作用。您知道如何解决这个问题吗?
import json
import pandas as pd
Run Code Online (Sandbox Code Playgroud)
第一种方法:
df = pd.read_json('dump.ndjson.000', lines=True)
Run Code Online (Sandbox Code Playgroud)
错误:ValueError: Unmatched ''"' when when decoding 'string'
第二种方法:
with open('dump.ndjson.000', 'r') as f:
my_data = f.read()
print(my_data)
Run Code Online (Sandbox Code Playgroud)
错误:json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 104925061 (char 104925060)
我认为问题是我的文件中有一些表情符号,所以我不知道如何对它们进行编码?
小智 12
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)
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为 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)
Run Code Online (Sandbox Code Playgroud)
PS:此代码的所有学分均来自 Github Issue 中的 KristianHolsheimer
| 归档时间: |
|
| 查看次数: |
17557 次 |
| 最近记录: |