2017-07-05 58 views
0

我正在嘗試使用Python解析大型JSON文件,並將數據不斷增加到最多1000行的較小文件中。將大型JSON文件轉換爲最多1000行的多個JSON文件

到目前爲止,我已經成功地打印高達一千行,但現在我被困在那裏往後走:

with open(input_file) as f: 
count = 0 
data = (lines for lines in f if count < 1000) 
for x in data: 
    count +=1 
    print (x + str(count)) 

因爲這需要一個可擴展的解決方案,任何其他的想法如何我可以做得更好嗎?

編輯: 的JSON的內部結構類似於以下內容: { 「newsletter_optin」:1, 「語言」: 「貨車」, 「國」: 「UY」, 「用戶名」: 「xy32」 ,「email」:「[email protected]」,「user_id」:138123918}

我正在開發一個項目,其中我的導師希望我將包含數百萬JSON行的大文件拆分爲1000行的迷你文件每。

+1

您能否給我們提供關於JSON文件內部結構的更多信息? –

+2

這個文件太大而無法進入內存嗎?是一個包含JSON有效文檔列表的文件嗎?它只是一個文檔? – FrankBr

+3

這是個好主意嗎?您將有效的JSON分割成單獨的文件。你以後如何重組它? –

回答

0

JSON文件具有內部結構,因此您不能在任何行上將其分開,因爲結果不會是有效的JSON。由於JSON文件是字典和列表的嵌套組合,因此最有意義的是打破同一列表的JSON分隔元素。

這裏是一個例子:

{'Big JSON':[{'little JSON1':values},{'little JSON2':values}]} 

這可以被打碎以

{'Big JSON':[{'little JSON1':values}]} 

{'Big JSON':[{'little JSON2':values}]} 

確切代碼用於破壞JSON向上取決於內部結構的JSON文件。但重要的是您的每個文件都是獨立有效的JSON文件