2017-04-10 156 views
1

我有一個看起來像這樣JSON文件:根據ID將JSON文件拆分爲多個JSON文件?

{"one":"Some data", "two":"Some data",...} 

等等...

我想根據ID名稱所有的ID拆分成單獨的文件,例如:

one.json 
{"one":"Some data"} 
two.json 
{"two":"Some data"} 

等等。

我從this得到了參考。但是我的問題稍有不同。我可以修改什麼來實現單獨的文本文件?

+0

什麼意思變量名稱與密鑰名稱相同?你只是通過增加不必要的名字來加入名稱空間 – abccd

+1

請不要使用python-2.7 *和* python-3.x進行標記,除非你有足夠的理由這樣做。 – timgeb

回答

3

我不會教你如何做文件I/O,並假設你自己可以做到這一點。

一旦你已經加載了原始文件作爲與json模塊dict,做

>>> org = {"one":"Some data", "two":"Some data"} 
>>> dicts = [{k:v} for k,v in org.items()] 
>>> dicts 
[{'two': 'Some data'}, {'one': 'Some data'}] 

,這將給你的詞典列表,你可以轉儲到一個文件(或單獨的文件中的密鑰而得名), 如果你希望。

1

加載JSON文件後,您可以將它視爲python中的字典,然後像在普通python字典中那樣通過循環來保存文件中的內容。 這是關係到你想要獲取JSON數據到一個變量後能達到

Data = {"one":"Some data", "two":"Some data"} 
for item in Data: 
    name = item + '.json' 
    file = open(name, 'w') 
    file.write('{"%s":"%s"}' % (item, Data[item])) 
    file.close() 
1

什麼一個例子,做

a = {"one":"Some data", "two":"Some data"} 
for k,v in a.items(): 
    with open(k+".json","w") as f: 
     f.write('{"%s" : "%s"}' %(k,v)) 

和輸出是:

one.json => {"one":"Some data"} 

two.json => {"two":"Some data"} 
相關問題