根据ID将JSON文件拆分为多个JSON?

时间:2017-04-10 05:48:04

标签: python json python-2.7 python-3.x

我有一个JSON文件,如下所示:

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

依旧......

我想根据ID的名称将所有ID拆分为单独的文件,例如:

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

等等。

我从this获得了参考资料。但我的问题略有不同。我可以修改什么来实现单独的文本文件?

3 个答案:

答案 0 :(得分:3)

我不会教你如何进行文件I / O,并假设你可以自己做。

使用dict模块将原始文件加载为json后,执行

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

如果您愿意,它将为您提供可以转储到文件的字典列表(或以键命名的单独文件)。

答案 1 :(得分:2)

将json数据转换为变量后,执行

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"}

答案 2 :(得分:1)

加载JSON文件后,您可以将其视为python中的字典,然后通过循环将内容保存在文件中,就像在普通的python字典中一样。 以下是与您想要实现的内容相关的示例

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()