簡體   English   中英

如何將大型 JSON 文件加載到 Pandas Dataframe

[英]How to load a large JSON file to a Pandas Dataframe

我有 16 個 JSON 文件,每個文件的大小約為 14GB。 我嘗試了以下方法逐行閱讀它們。

with open(file_name, encoding="UTF-8") as json_file:
cursor = 0
for line_number, line in enumerate(json_file):
    print ("Processing line", line_number + 1,"at cursor index:", cursor)
    line_as_file = io.StringIO(line)
    # Use a new parser for each line
    json_parser = ijson.parse(line_as_file)
    for prefix, type, value in json_parser:
        #print ("prefix=",prefix, "type=",type, "value=",value,ignore_index=True)
        dfObj = dfObj.append({"prefix":prefix,"type":type,"value":value},ignore_index=True)
    cursor += len(line)

我的目標是將它們加載到 pandas 數據幀中以執行一些搜索操作。

問題是這種方法需要花費大量時間來讀取文件。

有沒有其他最佳方法來實現這一目標?

您只能將json_file直接傳遞給 ijson.parse 一次,而不是從中讀取單獨的行。 如果您的文件有多個頂級 JSON 值,那么您可以使用multiple_value=True選項(有關說明,請參見此處)。

還要確保您使用的是最新的 ijson,並且yajl2_c后端是正在使用的后端(在 ijson 3 中,您可以通過查看ijson.backend來查看選擇了哪個后端)。 有關后端的信息,請查看此處

您可以使用 Pandas 內置 function
pandas.read_json()
文檔在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM