我有一个看起来像这样JSON文件:根据ID将JSON文件拆分为多个JSON文件?
{"one":"Some data", "two":"Some data",...}
等等...
我想根据ID名称所有的ID拆分成单独的文件,例如:
one.json
{"one":"Some data"}
two.json
{"two":"Some data"}
等等。
我从this得到了参考。但是我的问题稍有不同。我可以修改什么来实现单独的文本文件?
我有一个看起来像这样JSON文件:根据ID将JSON文件拆分为多个JSON文件?
{"one":"Some data", "two":"Some data",...}
等等...
我想根据ID名称所有的ID拆分成单独的文件,例如:
one.json
{"one":"Some data"}
two.json
{"two":"Some data"}
等等。
我从this得到了参考。但是我的问题稍有不同。我可以修改什么来实现单独的文本文件?
我不会教你如何做文件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'}]
,这将给你的词典列表,你可以转储到一个文件(或单独的文件中的密钥而得名), 如果你希望。
加载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()
什么一个例子,做
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"}
什么意思变量名称与密钥名称相同?你只是通过增加不必要的名字来加入名称空间 – abccd
请不要使用python-2.7 *和* python-3.x进行标记,除非你有足够的理由这样做。 – timgeb