python转xml为json

这篇具有很好参考价值的文章主要介绍了python转xml为json。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下代码取自获取PA防火墙策略XML文件并转为JSON文件的场景:
通过PA防火墙API获取防火墙策略
防火墙策略xpath为./result/security/rules/entry
以下代码实现将所有entry即策略与策略相关属性转为json对象并存储至文件文章来源地址https://www.toymoban.com/news/detail-741856.html

import xml.etree.ElementTree as ET
import requests
import json

entries_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.text
    for 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_data
    return 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_response


if __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)
            

到了这里,关于python转xml为json的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust 开发的高性能 Python 包管理工具,可替换 pip、pip-tools 和 virtualenv

    最近,我在 Python 潮流周刊 中分享了一个超级火爆的项目,这还不到一个月,它在 Github 上已经拿下了 8K star 的亮眼成绩,可见其受欢迎程度极高!国内还未见有更多消息,我趁着周末把一篇官方博客翻译出来了,分享给大家。 作者:@charliermarsh 译者:豌豆花下猫@Python猫 英

    2024年03月09日
    浏览(73)
  • Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南

    JSON作为目前最流行的传输格式,在Python中也有相应的实现方式。由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播。因此,我们今天的主要讨论内容是如何熟练地应用Python的JSON库来处理将JSON映射到文本,以及如何从文本映射到对象中。现在,让我们开始探讨这个

    2024年01月23日
    浏览(64)
  • 【游戏开发小技】TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)

    一、前言 嗨,大家好,我是林新发。 之前有同事找我问我能不能通过 json 逆向切分图集,我之前写过一个 python 脚本,但是没有存起来, 直到最近又有同事找我,给我发了 json 和 png 图集, 我决定写篇文章讲一下,也方便下次又有同事问我的时候直接丢出这篇文章~ 二、Te

    2024年02月04日
    浏览(113)
  • 【开发语言】C语言与Python的互操作详解

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客内容主要围绕:        5G/6G协议

    2024年02月10日
    浏览(66)
  • 如何用pip升级python版本,python的pip升级没反应

    大家好,小编为大家解答python的pip如何更新到最新版本的问题。很多人还不知道如何用pip升级python版本,现在让我们一起来看看吧! 第一步:首先检测一下我们电脑是否安装了python,打开命令提示框,输入python,如果安装了python就会提示出版本信息。 第二步:执行exit()命令

    2023年04月15日
    浏览(49)
  • python如何安装pip命令行,python如何安装pip install

    大家好,本文将围绕pip不是内部或外部命令怎么解决展开说明,python如何安装pip install pygame是一个很多人都想弄明白的事情,想搞清楚python如何安装pip命令行需要先了解以下几个事情。 对于大多数使用Python的人来说,一定知道pip这个包安装工具,但是对pip可能还不是很了解,

    2024年02月03日
    浏览(51)
  • 【Python】python -m pip install 和 pip install 的区别

    当你使用 pip install 命令时,你正在使用 Python 包管理器 pip 来安装 Python 包或模块。以下是关于 pip install 的详细理解: 安装包: pip install package 命令用于安装指定的 Python 包。你需要提供要安装的包的名称或包的标识符。例如,要安装名为 requests 的包,你可以执行 pip install

    2024年02月14日
    浏览(56)
  • 入门Python编程:了解计算机语言、Python介绍和开发环境搭建

    计算机语言是用来控制计算机行为的一种语言,通过它可以告诉计算机该做什么。计算机语言和人类语言在本质上没有太大区别,只是交流的对象不同。 计算机语言发展经历了三个阶段: 1. 机器语言 机器语言使用二进制编码来编写程序。 执行效率高,但编写起来麻烦。 2

    2024年02月09日
    浏览(69)
  • 38.Python从入门到精通—Python3 XML 解析 什么是 XML Python 对 XML 的解析

    XML(可扩展标记语言)是一种用于描述数据的标记语言,它可以用于表示各种类型的数据,包括文本、图像、音频、视频等。XML 的语法类似于HTML,但它更加灵活,可以自定义标记,并且不依赖于任何特定的应用程序或操作系统。 XML的基本结构由元素、属性和文本组成。元素

    2024年04月11日
    浏览(38)
  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的单点故障(node1,node2),zk的leader选举机制,1-2min还原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包