如何使用Python将节点从第一个JSON提取到第二个JSON?
第二天我就在为这件事苦苦挣扎,不能再往前走了。我的JSON是:如何使用Python将节点从第一个JSON提取到第二个JSON?,python,json,Python,Json,第二天我就在为这件事苦苦挣扎,不能再往前走了。我的JSON是: { "test": [ { "features": [ "none" ], "AAA": [ { "BBB": { "CCC": 95, "
{
"test": [
{
"features": [
"none"
],
"AAA": [
{
"BBB": {
"CCC": 95,
"DDD": 60
},
"EEE": "123",
"FFF": "image/png",
"GGG": "222",
"HHH": "image"
},
{
"BBB": {
"CCC": 95,
"DDD": 60
},
"EEE": "126",
"FFF": "image/jpg",
"GGG": "645",
"HHH": "image"
}
],
"III": [],
"JJJ": {
"KKK": true
},
"LLL": "0",
"MMM": false,
"name": "AXA"
},
{
"features": [
"none"
],
"AAA": [
{
"BBB": {
"CCC": 95,
"DDD": 60
},
"EEE": "123",
"FFF": "image/png",
"GGG": "222",
"HHH": "image"
},
{
"BBB": {
"CCC": 95,
"DDD": 60
},
"EEE": "126",
"FFF": "image/jpg",
"GGG": "645",
"HHH": "image"
}
],
"III": [],
"JJJ": {
"SSS": {
"Tech": "ABC",
"Tech2": "DEF",
"Tech3": "GHI"
},
"TTT": {
"Tech": "ABC",
"Tech2": "DEF",
"Tech3": "GHI"
},
"UUU": {
"Tech": "ABC",
"Tech2": "DEF",
"Tech3": "GHI"
},
"WWW": {
"Tech": "ABC",
"Tech2": "DEF",
"Tech3": "GHI"
"Tech4": "JKL"
},
"KKK": true
},
"PERM": {
"RRR": false
},
"X1": "adsada",
"X2": false,
"name": "AXA 2"
}
]
}
我想将完整节点提取到几个JSON文件中
我想从JSON中提取第3行和第36行之间以及第37行和第94行之间的节点
事情是这样的——它不会总是一样的,我的意思是我不能硬编码来把它切成两半;)
我知道使用XMLs很简单,但我仍然不知道如何使用JSON做到这一点。谁能帮我一点忙吗 如何处理json?嗯,和XML一样:解析它
=>使用解析出JSON,这将为您提供Python数据结构 然后循环使用
'test'
键,并将该列表中的每个字典转储到一个新的JSON文件:
import json
with open(inputjsonfile, 'r') as ifh:
data = json.load(ifh)
for i, entry in enumerate(data['test']):
with open('outputfile-test-{}.json'.format(i), 'w') as ofh:
json.dump(entry, ofh)
您可以根据需要进一步筛选条目,或使用条目中的数据生成文件名<例如,code>entry['name']是每个条目的名称值。您可以解码json并将其用作python元素(
list
和dict
)
导入json
data=json.load(my_json)
打印数据['test'][0]#这将是第3行和第36行之间的元素
打印数据['test'][1]#这将是从37到94
如果要再次将其转换为str
:
print json.dumps(data['test'][0])
print json.dumps(data['test'][1])
我必须解决在文件中迭代打印所有内容的问题,但我需要限制为一个节点。i、 e.从示例json extract full node where name=“AXA 2”到第二个json文件。您是否阅读了标准库json模块的文档(上面我的答案中的链接)?是的,我读了,但老实说,手册中的json章节不是最好的。@jakkolwiek:哦,是的,嗯。。。它从实际例子开始,接着是api文档。是的,当然,这和Python外壳肯定不足以开始。对不起,这里有一个顶级字典,所以它将是
data['test'][0]
。