2017-02-19 82 views
1

我想在Python中加載一個非常大的JSON文件。我試過了:在不知道架構的情況下加載非常大的JSON文件?

import json 
data = open('file.json').read() 
loaded = json.loads(data) 

但這給我一個SIGKILL錯誤。

我已經試過:

import pandas as pd 
df = pd.read_json('file.json') 

,我得到的內存外的一個錯誤。

我想嘗試使用ijson來傳輸我的數據,並且一次只將一個子集拖入其中。但是,您需要知道JSON文件的模式,以便知道要查找哪些事件。我實際上不知道我的JSON文件的模式是什麼。所以,我有兩個問題:

  1. 有沒有方法來加載或流在Python中的大型json文件而不知道架構?或者將JSON文件轉換爲另一種格式(或者轉換成postgresql服務器,例如)?

  2. 是否有一個工具,用於吐出我的JSON文件的模式是什麼?

UPDATE:

用於head file.json得到一個什麼樣我的JSON文件看起來像一個想法。從那裏它更容易一點。

+0

你可以發佈你的json文件的樣本嗎? –

回答

-1

您可以成批讀,像這樣

f=open("file.json") 
while True: 
    data = f.read(1024) 
    if not data: 
     break 
    yield data 

由行選項 數據= [] 開放( '文件')爲F線: 在F線:0​​data.append (json.loads(線))

也期待在 https://www.dataquest.io/blog/python-json-tutorial/

尋找更多答案與jsonline

+0

此方法不起作用;當我嘗試使用'json.loads'或'pandas.read_json'加載一個json文件塊時,我得到的錯誤不是json對象,就是熊貓,它是一個'ValueError:Trailing數據' – user1566200

+0

請試試這個在j:f中的jsonline: yield json.loads(jsonline) –

+0

我得到'yield yield function' – user1566200

相關問題