在python中合并多个JSON或输出单个JSON文件

2024-05-15 21:02:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个python脚本中,我对服务器进行REST调用,并从JSON文件中提取信息。通过下面的代码,我将4个JSON文件输出到一个文件夹中。我只想输出一个json文件和我需要的所有信息,我该怎么做? 如果这不可能,那么我认为合并4个JSON文件将是我唯一的选择?任何帮助都将不胜感激。在

from subprocess import call
import os
import json
from glob import glob

fileName = "IP.txt"
file = open(fileName, "r")
for str in file:
login_info = str.split(':')
ip = login_info[0] 
username = login_info[1]
password = login_info[2]
os.mkdir(ip)

  call(["ilorest", "login", ip, '-u', 
  username, '-p', password])

  call(["ilorest", "save", '-- 
  selector=ComputerSystem', '--json', '-f', 
  ip+"\\"+ip+".json"])

  call(["ilorest", "save", '-- 
  selector=Memory', '--json', '-f', 
  ip+"\\"+ip+"_memory"+".json"])

  call(["ilorest", "save", '-- 
  selector=Processor', '--json', '-f', 
  ip+"\\"+ip+"_processor"+".json"])

  call(["ilorest", "save", '-- 
  selector=HPESmartStorageDiskDrive', '-- 
  json', '-f', 
  ip+"\\"+ip+"_drives"+".json"])

  call(["ilorest", "logout"])


paths = glob('*/')
for d in paths:
print(os.dir(d))

Tags: 文件fromimportipinfo信息jsonos
1条回答
网友
1楼 · 发布于 2024-05-15 21:02:25

只需使用所有json对象生成dict,然后将其转储:

types = ['', '_memory', '_processor', '_drives']

result = {}
for suffix in types:
    with open(os.path.join(ip, ip + suffix + '.json')) as f:
        result[suffix.strip('_')] = json.load(f)
with open(os.path.join(ip, ip+ '_all.json'), 'w') as fw:
    json.dump(result, fw)

相关问题 更多 >