Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >技术学习:Python(04)|欲先善其事,必先利其器(JSON)二

技术学习:Python(04)|欲先善其事,必先利其器(JSON)二

作者头像
艾特
发布于 2023-10-10 06:46:27
发布于 2023-10-10 06:46:27
28100
代码可运行
举报
运行总次数:0
代码可运行

🏮 学习前言

通过昨日学习,了解python针对json和python对象的转换,今日延续昨日的激情,继续学习python中xml与json的互相转换。

🎈1.1 通过本次学习将获得

  • JSON文件转为XML文件
  • XML文件转为JSON文件
  • 解析JSON字符串
  • 解析JSON文件

需要先记住的一些概念

Python除了有自己内置函数,还有标准库以及第三方库。在Python中文网上面,我们可以清晰的看到两个菜单,标准库和第三方库。

  • 内置函数:无需导入,即可使用。例如:静态数字,内置函数加减乘除、绝对值、平均数等。
  • 标准库:自带库,需要使用import关键字引入后,才可以使用。例如:import json
  • 第三方库:需要安装后(有些第三方库可能还需要配置),使用import关键字引入后,才可以使用。还有一些非Python语言写成的库,例如引入java、C等语言的第三方库。第三方库主要用于以下几种用途:
    • 文件读写
    • 网络抓取和解析
    • 数据库连接
    • 数据清洗转换
    • 数据计算和统计分析
    • 自然语言处理和文本挖掘
    • 数据挖掘
    • 机器学习
    • 深度学习
    • 图像处理
    • 视频处理
    • 音频处理
    • 数据可视化
    • 交互学习和集成开发
    • 其他

🎈1.2 安装第三方库

首先安装第三方库,需要执行命令安装

  • Windows
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install xmltodict
  • MacOS
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装
xxx $ pip install xmltodict

DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Collecting xmltodict
  Downloading xmltodict-0.13.0-py2.py3-none-any.whl (10.0 kB)
Installing collected packages: xmltodict
  DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Successfully installed xmltodict-0.13.0

# 查询已安装第三方库列表
xxx $ pip list
Package    Version
---------- -------
meson      0.58.1
pip        22.2.2
protobuf   3.17.3
setuptools 59.0.1
wheel      0.37.0
xmltodict  0.13.0

✍️ 小技巧:

  • 如果想查看pip下面安装了什么工具库,可以执行命令 pip list
  • 如果想要升级pip,需要执行 PYTHON_HOME/bin/python3.9 -m pip install --upgrade pip

🎈1.3 JSON文件转为XML文件

首先,在python的环境下面,我手工创建一个json文件,如下图所展示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import json
>>>
>>> person = {"person":{"name":"小明","sex":"男","age":18}}
>>>
>>> json.dump(person, open('person.json', 'w'), ensure_ascii = False)

使用cat命令查看下写入的文件的内容,如下图所展示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxx$ cat person.json
{"person": {"name": "小明", "sex": "男", "age": 18}}

重点来了,我们现在需要将这个json文件转换为xml文件,那么需要在python环境下,执行如下命令,代码参考老师博文

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import xmltodict
import json

def json_to_xml(python_dict):
    """xmltodict库的unparse()json转xml

    :param python_dict: python的字典对象
    :return: xml字符串
    """
    xml_str = xmltodict.unparse(python_dict)
    return xml_str

JSON_PATH = './person.json'  # json文件的路径
with open(JSON_PATH, 'r') as f:
    jsonfile = f.read()
    python_dict = json.loads(jsonfile)  # 将json字符串转换为python字典对象
    with open(JSON_PATH[:-4] + 'xml', 'w') as newfile:
        newfile.write(json_to_xml(python_dict))

执行命令之后,查看目录下多了一个person.xml文件,打开文件我们看到了我们预期的效果,若下图展示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxx $ cat person.xml
<?xml version="1.0" encoding="utf-8"?>
<person><name>小明</name><sex></sex><age>18</age></person>

🎈1.4 XML文件转为JSON文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import json
import xmltodict

def xml_to_json(xml_str):
    """parse是的xml解析器,参数需要

    :param xml_str: xml字符串
    :return: json字符串
    """
    xml_parse = xmltodict.parse(xml_str)
    # json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。
    # dumps()方法的ident=1,格式化json
    json_str = json.dumps(xml_parse, indent=1)
    return json_str

XML_PATH = './person.xml'  # xml文件的路径
with open(XML_PATH, 'r') as f:
    xmlfile = f.read()
    with open(XML_PATH[:-3] + 'json', 'w') as newfile:
        newfile.write(xml_to_json(xmlfile))

🎈1.5 解析JSON字符串

🎈1.6 解析JSON文件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
技术学习:Python(03)|欲先善其事,必先利其器(JSON)一
🎈1.2类型转换对照表 python 中类型向 json 类型的转化对照表,先记住这张表哈:
艾特
2023/10/10
2650
JSON解析-python实现
本文从以下几个方面进行讨论: 1. JSON的基本概念 2. python解析JSON 3. 参考
py3study
2020/01/03
1.3K0
python第三方库系列之一--json
    1. 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。
py3study
2020/01/09
1.7K0
Python下的XML文件处理与远程调用实践
XML是一种用于存储和传输数据的标记语言,具有自我描述性和可扩展性的特点。它使用标签和属性来定义数据的结构,被广泛应用于配置文件、Web服务通信和数据交换等领域。
一键难忘
2024/03/16
3570
Python中的xmltodict库:轻松处理XML数据,Web前端、配置文件必备知识
xmltodict是一个Python库,它提供了将XML数据转换为Python字典(以及将字典转换回XML)的功能。这个库非常适合处理需要解析或生成XML数据的应用程序,如Web服务客户端、配置文件读取器和数据转换器等。
小白的大数据之旅
2024/11/20
3260
Python xml 与 dict 相互转化
xml 是一种标记语言,本质是字典,因此如果可以将 xml 转换为字典,并且从字典转换成 xml 则可以为所欲为。
为为为什么
2024/06/06
2680
Unity 数据读取|(四)Json文件解析(Newtonsoft.Json ,Litjson,JsonUtility,SimpleJSON)
游戏开发小Y
2024/01/18
2.3K0
python实用小工具介绍
一、秒级启动一个HTTP下载服务器 在实际工作中,时不时会有这样的一个需求:将文件传给其他同事。将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输。但是,如果需要传送的文件较多,那么,操作起来就会比较麻烦。此外,如果文件在远程的服务器上,你要将文件传给同事,则需要先将远程服务器的文件下载到本地,然后再通过聊天工具传给同事。再或者,你并不是特别清楚要传哪几个文件给同事,所以,你们需要进行来回的交流。交流的时间成本是比较高的,会降低办事效率。此时,你们需要更加高效的方法。这个时候,如果你知道Python内置了一个下载服务器就能够显著提升效率了。例如,你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目录,然后执行下面的命令启动一个下载服务器: 本地有个一文件夹,想共享给局域网同事下载一些里面的文件,可以使用python的如下命令。 • python2的用法如下: python -m SimpleHTTPServer • python3的用法如下: python3 -m http.server --cgi 以上两种方法默认端口8000,可以制定端口,例如指定端口45678: python -m SimpleHTTPServer 45678 python3 -m http.server --cgi 45678
py3study
2020/01/07
6920
工欲善其事必先利其器:用什么写Python?
通常来说,每个程序员都有自己趁手的兵器:代码编辑器。你要是让他换个开发环境,恐怕开发效率至少下降三成。然而,每个人对编辑器的喜好各不相同,甚至引发出诸如“神的编辑器”与“编辑器之神”这种信仰之争。但也正由此可见,个性化的编辑器对于一个程序员的重要性。
Crossin先生
2018/07/24
8020
工欲善其事必先利其器:用什么写Python?
【Python】我的Python学习笔记【1】【using Python 2】
简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
zhaokang555
2023/10/17
1550
JSON入门
JSON:JavaScript Object Notation 【JavaScript 对象表示法】
全栈程序员站长
2022/07/20
3720
JSON入门
python 程序员进阶之路:从新手到高手的100个模块
在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python 学到什么程度可以面试工作?》,真实反映了 python 程序员在成长过程中的一些困惑。
全栈程序员站长
2022/07/25
4440
预备小菜:Python入门之模块和库
再将众多具有相关功能的模块文件结构化组合形成包,具有相关功能模块和包的集合就是库。这也是Python的一大特色,因为它具有强大的标准库、第三方库和自定义模块。这些库和模块提供丰富的功能,包括后续学习到的NumPy和Pandas.
马拉松程序员
2023/02/24
3310
预备小菜:Python入门之模块和库
几个提高工作效率的Python内置小工具
專 欄 ❈本文作者:赖明星 博客地址: https://www.zhihu.com/people/mingxinglai❈ 在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具。这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略。每当有新来的同事看到我这么使用时,都忍不住感叹,原来Python还隐藏了这么好用的功能。下面就来看一下Python自带的几个小工具 一、1秒钟启动一个下载服务器 在实际工作中,时不时会有这样的一个需求:将文件传给其他同事。将文件传给同事
Python中文社区
2018/01/31
1.2K0
几个提高工作效率的Python内置小工具
JSON就是这么简单
什么是JSON JSON:JavaScript Object Notation 【JavaScript 对象表示法】 JSON 是存储和交换文本信息的语法。类似 XML。 JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言。 为什么需要JSON 提到JSON,我们就应该和XML来进行对比。XML也是一种存储和交换文本信息的手段。那么JSON好在哪里呢?? JSON 比 XML 更小、更快,更易解析。 javaScript原生支持JSON,解析速度会很快 XML解析成DOM对象的时
Java3y
2018/03/15
8060
JSON就是这么简单
JSON 基本使用
JSON常被拿来与XML做比较,因为JSON 的诞生本来就多多少少要有取代XNL的意思。相比 XML,JSON的优势如下:
兮动人
2021/06/11
1.5K0
JSON 基本使用
Python基础学习
概念:计算及是根据指令操作数据的设备,具有功能性和可编程性。 发展:参照摩尔定律(Moore’s Law),表现为指数方式。 程序设计:计算及可编程性的体现。 程序设计语言:一种用于交互的人造语言。 编程语言的执行方式:编译和解释。 编译:将源代码一次性转换成目标代码的过程。 解释:将源代码逐条转换成目标代码同时逐条运行的过程。 静态语言:使用编译执行的编程语言,如C、C++、Java 脚本语言:使用解释执行的编程语言,如Python,JavaScript,PHP 程序的基本编写方法(IPO):Input输入 Process处理 Output输出
LeviMaster
2021/06/15
2.5K0
JSON 基本使用
JSON常被拿来与XML做比较,因为JSON 的诞生本来就多多少少要有取代XNL的意思。相比 XML,JSON的优势如下:
兮动人
2021/05/31
1.7K0
JSON 基本使用
鸿蒙NEXT版仿微信聊天App的解析JSON串
上一节我们利用三方库SocketIO实现了在设备间收发文本消息,那么对于更复杂的消息包,就不仅是简单的一串文本,而是采用JSON格式封装的字符串。鉴于JSON格式是很常见的数据格式,这里就不再啰嗦了,如果是纯新手不了解JSON格式的话,建议参考《Android Studio开发实战:从零基础到App上线(第3版)》一书的“13.2.1 移动数据格式JSON”。
aqi00
2024/11/25
1510
鸿蒙NEXT版仿微信聊天App的解析JSON串
Python -- Json 数据
JSON:JavaScriptObjectNotation(JavaScript 对象表示法)
py3study
2020/01/14
1.7K0
相关推荐
技术学习:Python(03)|欲先善其事,必先利其器(JSON)一
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档