【发布时间】:2019-01-20 09:31:16
【问题描述】:
在这个 python 脚本中,我正在对服务器进行 REST 调用并将信息提取到 JSON 文件中。使用以下代码,我将 4 个 JSON 文件输出到一个文件夹中。我想只输出 1 个包含我需要的所有信息的 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))
【问题讨论】:
-
您可以将所有四个元素添加到列表中,然后将列表保存为 JSON。看
subprocess.check_output -
如果合并是解决方案,你会怎么做?结果如何?你想在里面放什么?
-
所有文件的格式完全相同,实际上第一部分是相同的。我希望它们作为单个文件的唯一原因是因为我更容易解析它们并将它们加载到我的 sql 表中。我宁愿每个 IP 有 1 个非常长的文件,而不是每个 IP 有 4 个文件。