簡體   English   中英

在 python 中處理大型 JSON 數據

[英]Handling with large JSON data in python

我的 JSON (~500mb) 文件有多個 JSON objetcs,實際上我只需要使用“customer_id”列。 當我執行下面的代碼時,它會出現內存錯誤。

with open('online_pageviews.json') as f:
     online_pageviews = pd.DataFrame(json.loads(line) for line in f)

這是“online_pageviews.json”中的 JSON 對象示例

{
"date": "2018-08-01",
"visitor_id": "3832636531373538373137373",
"deviceType": "mobile",
"pageType": "product",
"category_id": "6365313034",
"on_product_id": "323239323839626",
"customer_id": "33343163316564313264"
}

有沒有辦法只使用“customer_id”列? 我該怎么做才能加載這個文件?

如果您管理實際浮動的數據量,您應該能夠做到這一點。 由於您需要客戶 ID,因此不必費心將任何其他數據加載到您的數據框中。

customer_id_array = []
with open('online_pageviews.json') as f:
    for line in f:
        customer_id_array.append(json.loads(line)['customer_id'])
online_pageviews = pd.DataFrame(customer_id_array,columns = ['customer_id'])

通過這種方式,您可以顯着減少之前使用的額外內存量。

(我不確定您的系統是否能夠處理這個問題,因為customer_id_array仍然可以變得相當大,但它應該比以前好得多。如果不能,您可能需要尋找一些在線選項來租用具有更多內存的系統。)

暫無
暫無

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

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