无锡网站制作系统,贺州网站建设,做网站的公司主要做shm,h5 做的网站 价格以下代码取自获取PA防火墙策略XML文件并转为JSON文件的场景#xff1a; 通过PA防火墙API获取防火墙策略 防火墙策略xpath为./result/security/rules/entry 以下代码实现将所有entry即策略与策略相关属性转为json对象并存储至文件
import xml.etree.ElementTree as ET
import …以下代码取自获取PA防火墙策略XML文件并转为JSON文件的场景 通过PA防火墙API获取防火墙策略 防火墙策略xpath为./result/security/rules/entry 以下代码实现将所有entry即策略与策略相关属性转为json对象并存储至文件
import xml.etree.ElementTree as ET
import requests
import jsonentries_XPath ./result/security/rules/entry# xml对象转字典
def element_to_dict(element):result {}if element.tag entry:result[name] element.attrib.get(name)result[uuid] element.attrib.get(uuid)if len(element) 0:return element.textfor child in element:child_data element_to_dict(child)if child.tag in result:if type(result[child.tag]) is list:result[child.tag].append(child_data)else:result[child.tag] [result[child.tag], child_data]else:result[child.tag] child_datareturn result# xml转json
def transfer_xml_to_json(xml_policy_response):root ET.fromstring(xml_policy_response)entries root.findall(entries_XPath)json_policy_response [element_to_dict(entry) for entry in entries]return json_policy_responseif __name__ __main__:get_api_key(firewall_ip, username, password)xml_policy_response get_security_policy(firewall_ip, api_key)json_policy_response transfer_xml_to_json(xml_policy_response.text)with open(rules.json, w) as f:json.dump(json_policy_response, f)