[英]How to open .ndjson file in Python?
我有一個 20GB 的.ndjson
文件,我想用 Python 打開它。文件太大了,所以我找到了一種方法,可以用一個在線工具將它分成 50 個和平文件。 這是工具: https://p.netools.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)
我認為問題是我的文件中有一些表情符號,所以我不知道如何對它們進行編碼?
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)
我認為 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:此代碼 go 的所有學分來自 Github Issue 的 KristianHolsheimer
ndjson (newline delimited) json 是一種 json-lines 格式,即每一行都是一個 json。它非常適合缺乏剛性結構('non-sql')的數據集,其中文件大小足以保證多個文件.
您可以使用 pandas:
import pandas as pd
data = pd.read_json('dump.ndjson.000', lines=True)
如果您的 json 字符串不包含換行符,您也可以使用:
import json
with open("dump.ndjson.000") as f:
data = [json.loads(l) for l in f.readlines()]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.