2013-02-13 68 views
2

內容命名多個文件,我有一個JSON格式的大.txt文件,這會導致對如下:分割txt文件根據自己在Python

{ 
    "Name": "arbitrary name 1", 
    "Detail 1": "text here", 
    "Detail 2": "text here", 
    "Detail 3": "text here", 
}, 
{ 
    "Name": "arbitrary name 1", 
    "Detail 1": "text here", 
    "Detail 2": "text here", 
    "Detail 3": "text here", 
}, 

等,對2000個條目。

我想要做的是將此文件拆分爲單個.txt文件,同時保留JSON格式。

因此,在本質上,我需要拆分後的文件},以2000新的.txt文件,如下所示:

{ 
    "Name": "arbitrary name 1", 
    "Detail 1": "text here", 
    "Detail 2": "text here", 
    "Detail 3": "text here", 
} 

而且,這些新的2000 .txt文件必須按照被命名爲「名稱」屬性,因此這個示例文件將被命名爲「任意名稱1.txt」。

任何幫助,這將不勝感激。我可以使用bash分割文件,但是這不允許我需要的命名。

我希望有人可以幫我找到一個Python解決方案,也可以正確命名文件。

在此先感謝

+2

如果你能解析整個文件,這是微不足道的;那麼它只是一個循環遍歷外部JSON列表的各個部分。你有什麼嘗試? – 2013-02-13 17:03:53

回答

2
import json 
with open('file.txt', 'r') as f: 
    data = json.loads(f.read()) 
for line in data: 
    with open(line['Name'] + '.txt', 'w') as f: 
     f.write(json.dumps(line)) 

注意,結果JSON事後又沒有排序的,但應適當分裂。

+0

感謝您的支持,它效果很好。不幸的是,生成的json文件的順序是一個問題。您是否知道如何在原始文件中維護訂單?再次感謝。 – gedwin 2013-02-14 18:12:54