python第三方模块xmltodict库优雅处理xml格式为json

 更新时间:2024年01月30日 14:19:46   作者:菜鸟童学  
这篇文章主要为大家介绍了python第三方模块xmltodict库优雅处理xml格式为json实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

今天给大家带来一篇关于python第三方模块xmltodict的使用文章。

1、背景:

工作中我们经常处理一些xml格式的数据,比如在抓取某网站数据时,我们会取巧去抓取他的RSS订阅信息等,那我们怎么解析这些数据呢,有一些传统的类似html  lxml的工具包,今天给大家带来一个xmltodict 优雅处理xml格式为json的库

2、什么是 XML?

  • XML 指可扩展标记语言(EXtensible Markup Language)。

  • XML 是一种很像HTML的标记语言。

  • XML 的设计宗旨是传输数据,而不是显示数据。

  • XML 标签没有被预定义。您需要自行定义标签。

  • XML 被设计为具有自我描述性。

  • XML 是 W3C 的推荐标准。

3、什么是 RSS?

  • RSS 指 Really Simple Syndication(真正简易联合)

  • RSS 使您有能力聚合(syndicate)网站的内容

  • RSS 定义了非常简单的方法来共享和查看标题和内容

  • RSS 文件可被自动更新

  • RSS 允许为不同的网站进行视图的个性化

  • RSS 使用 XML 编写

4、xmltodict安装

pip3 install xmltodict

5、我们看下如何使用

import xmltodict
import json
xml_str = '''
<bookstore>
  <book category="COOKING">
      <title lang="en">Everyday Italian</title>
      <author>Giada De Laurentiis</author>
      <year>2005</year>
      <price>30.00</price>
  </book>
  <book category="CHILDREN">
      <title lang="en">Harry Potter</title>
      <author>J K. Rowling</author>
      <year>2005</year>
      <price>29.99</price>
  </book>
  <book category="WEB">
      <title lang="en">Learning XML</title>
      <author>Erik T. Ray</author>
      <year>2003</year>
      <price>39.95</price>
  </book>
</bookstore>
'''
new_dict_obj = xmltodict.parse(xml_str)  # 返回一个OrderedDict类型的对象
json_str = json.dumps(new_dict_obj)  # 使用内置的json模块转换成json
print(json_str)

结果如下:

{"bookstore": {"book": [{"@category": "COOKING", "title": {"@lang": "en", "#text": "Everyday Italian"}, "author": "Giada De Laurentiis", "year": "2005", "price": "30.00"}, {"@category": "CHILDREN", "title": {"@lang": "en", "#text": "Harry Potter"}, "author": "J K. Rowling", "year": "2005", "price": "29.99"}, {"@category": "WEB", "title": {"@lang": "en", "#text": "Learning XML"}, "author": "Erik T. Ray", "year": "2003", "price": "39.95"}]}}

如何转成xml

直接上代码

import xmltodict
new_dict_obj = {"bookstore": {"book": [{"@category": "COOKING", "title": {"@lang": "en", "#text": "Everyday Italian"}, "author": "Giada De Laurentiis", "year": "2005", "price": "30.00"}, {"@category": "CHILDREN", "title": {"@lang": "en", "#text": "Harry Potter"}, "author": "J K. Rowling", "year": "2005", "price": "29.99"}, {"@category": "WEB", "title": {"@lang": "en", "#text": "Learning XML"}, "author": "Erik T. Ray", "year": "2003", "price": "39.95"}]}}
new_xml = xmltodict.unparse(new_dict_obj)# 这里直接放dict对象
print(new_xml)

结果如下

<?xml version="1.0" encoding="utf-8"?>
<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><book category="WEB"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book></bookstore>

6、网站抓取中使用

获取xml数据源链接

请求数据源

import requests
import xmltodict
headers = {
}
url = "https://boyyongxin.github.io/atom.xml"
response = requests.get(url, headers=headers,verify=False)
xml_str = response.text
new_dict_obj = xmltodict.parse(xml_str)
print(new_dict_obj)

得到的结果我们就可以json方式去提取了

以上就是python第三方模块xmltodict库优雅处理xml格式为json的详细内容,更多关于python xmltodict库的资料请关注脚本之家其它相关文章!

相关文章

  • 浅析form标签中的GET和POST提交方式区别

    浅析form标签中的GET和POST提交方式区别

    在HTML中,form表单的作用是收集标签中的内容<form>...</form> 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端
    2021-09-09
  • 详解解决Python memory error的问题(四种解决方案)

    详解解决Python memory error的问题(四种解决方案)

    这篇文章主要介绍了详解解决Python memory error的问题(四种解决方案),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 通过python获取甲流分布数据

    通过python获取甲流分布数据

    近期,多地学校出现因甲流导致的班级停课,儿科甲流患者就诊量呈数倍增长,今天我们同样的操作来获取下现在甲流感染的数据,需要的朋友可以参考下
    2023-03-03
  • python-字典dict和集合set

    python-字典dict和集合set

    这篇文章主要介绍了python-字典dict和集合set,字典是python中的一种数据结构。集合(set)与字典相同均存储key,但只存储key,key不可重复,所以set中的值不可重复,而且是无序,下面来看看更多相关内容吧
    2021-12-12
  • python numpy 矩阵堆叠实例

    python numpy 矩阵堆叠实例

    今天小编就为大家分享一篇python numpy 矩阵堆叠实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python 使用元类type创建类对象常见应用详解

    Python 使用元类type创建类对象常见应用详解

    这篇文章主要介绍了Python 使用元类type创建类对象,结合实例形式详细分析了Python元类的概念、功能及元类type创建类对象的常见应用技巧,需要的朋友可以参考下
    2019-10-10
  • 一文教你将Visual Studio Code变成Python开发神器

    一文教你将Visual Studio Code变成Python开发神器

    Visual Studio Code 是一款功能强大、可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一。本文将为大家介绍一下如何将Visual Studio Code变成Python开发神器,需要的可以参考一下
    2022-07-07
  • tornado框架blog模块分析与使用

    tornado框架blog模块分析与使用

    这篇文章主要介绍了tornado框架blog模块的使用方法,大家参考使用吧
    2013-11-11
  • Python实现的字典值比较功能示例

    Python实现的字典值比较功能示例

    这篇文章主要介绍了Python实现的字典值比较功能,可实现针对字典格式数据的判断、比较功能,涉及Python字典格式数据的遍历、判断等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Django用户身份验证完成示例代码

    Django用户身份验证完成示例代码

    这篇文章主要介绍了Django用户身份验证完成示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论