python实战——XML转Json

article/2025/6/18 21:54:00

需求

将xml文件转换为json文件,在网上找了一圈,发现文件大了,还收费,我这暴脾气,自己写一个吧!

实现

安装必须的依赖库,我们需要安装json库,用于处理json文件
pip install json
再装一个处理将xml转换为字典类型的库
pip install xmltodict==0.12.0

我们找一个xml文件吧,随便找了一个rss的xml文件,它的内容如下,
注意哈,内容中包含中文,一不小心转换结果很容易出现乱码

<rss><channel><title>参考消息电子版</title><link>http://www.ckxx.info/</link><item><guid>http://www.ckxx.info/other1/201111/7-55584.html</guid><title>伊朗核问题临近最后摊牌</title><description>伊朗核问题临近最后摊牌</description><link>http://www.ckxx.info/other1/201111/7-55584.html</link><pubDate>2011-11-07</pubDate></item><item><guid>http://www.ckxx.info/other1/201111/7-55583.html</guid><title>日本天皇因病住院</title><author>http://www.ckxx.info</author><description>日本天皇因病住院</description><link>http://www.ckxx.info/other1/201111/7-55583.html</link></item></channel>
</rss>

直接上代码吧,创建一个converter.py的文件,代码很简单,加载xml文件,将xml转换为字典类型,再将字典类型转换为json字符串,然后写入一个新文件就大功告成了

# -*- coding: utf-8 -*-
import json
import xmltodict# 主程序,执行入口
if __name__ == '__main__':with open('input1.xml', encoding="UTF-8") as xml_file:# 将xml文件转化为字典类型数据parsed_data = xmltodict.parse(xml_file.read())# 关闭文件流,其实 不关闭with也会帮你关闭xml_file.close()# 将字典类型转化为json格式的字符串json_conversion = json.dumps(parsed_data, ensure_ascii=False)# 将字符串写到文件中with open('output.json', 'w', encoding="UTF-8") as json_file:json_file.write(json_conversion)json_file.close()

运行 python converter.py 就能得到转换后的output.csv文件,结果如下:

{"rss": {"channel": {"title": "参考消息电子版","link": "http://www.ckxx.info/","item": [{"guid": "http://www.ckxx.info/other1/201111/7-55584.html","title": "伊朗核问题临近最后摊牌","description": "伊朗核问题临近最后摊牌","link": "http://www.ckxx.info/other1/201111/7-55584.html","pubDate": "2011-11-07"},{"guid": "http://www.ckxx.info/other1/201111/7-55583.html","title": "日本天皇因病住院","author": "http://www.ckxx.info","description": "日本天皇因病住院","link": "http://www.ckxx.info/other1/201111/7-55583.html"}]}}
}

需要注意的点

1.读取xml文件的时候,如果里面包含中文,要指定编码格式
with open(‘input1.xml’, encoding=“UTF-8”) as xml_file

  1. 将字典类型转化为json格式的字符串,需要把ascii码自动识别给关闭,要不然会出现下面的结果
    json_conversion = json.dumps(parsed_data, ensure_ascii=False)
    自动ascii
    3.将json字符串写入文件时候,需要指定编码,否则在中文的地方会出现乱码
    with open(‘output.json’, ‘w’, encoding=“UTF-8”) as json_file
    指定写入编码

如果 对您有帮助,请关注或点赞我哈。
如果您也对python有兴趣,我这里有一本《python编程手册》,里面几乎囊括了python的方方面面(1000页),可以作为字典使用以备忘记知识点的时候进行查询。领取方式:在鄙人的共重号(python实例实战)里发送 “python学习手册“” 进行领取,还有每天的实战实例。您的支持是我最大的动力,感谢!


http://chatgpt.dhexx.cn/article/b4ul7V5p.shtml

相关文章

Java 实体转Json Json转实体 String转Json Sting转JSONObject Sting转JSONArray

常用&#xff1a;String转Json JSONObject json JSONObject.parseObject(token); token json.get("token").toString(); 一、实体转Json Json转实体 String转Json String转JSONArray 一、JDKjson(json-lib-2.4-jdk15.jar) //String转Json JSONObject json JSONO…

【Python】使用python实现yaml转json,json转yaml,以及批量实现yaml与json文件互相转换

文章目录 1. 安装yaml库2. yaml转json3. json转yaml4. 批量将yaml与json文件互相转换 1. 安装yaml库 想要使用python实现yaml与json格式互相转换&#xff0c;需要先下载pip&#xff0c;再通过pip安装yaml库。 如何下载以及使用pip&#xff0c;可参考我的另一篇博客&#xff1a…

转JSON数据的基本使用

目录 一、JSON概念 二、常用类型 三、基本使用 四、JsonIgnore&JsonIgnoreProperties() 五、 解决JSON日期格式化问题&#xff1a;JsonFormat 一、JSON概念 JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于 EC…

docker重启rabbitmq

1.输入docker ps -a 看看有哪些docker 镜像在运行2.先停止输入再进行删除3.然后我们发现已经没有了&#xff0c;再重新运行 docker run -d --name rabbitmq3.7.7 -p 5672:5672 -p 15672:15672 -v pwd/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOSTvho…

为什么我的 postgresql 重启 docker 后数据库就没了?

我们可以使用 docker 直接加载 postgresql 镜像来启动一个新的 postgresql 服务&#xff0c;但是这样做当重启 postgresql 的容器后&#xff0c;我们会发现数据库的内容就没了。 这个时候我们需要使用 docker volume 功能让 postgresql 把数据库放到主机 (host) 的文件夹下来保…

LINUX配置防火墙端口。并防火墙修改之后重启docker

一&#xff1a;linux配置防火墙 通过修改/etc/sysconfig/iptables文件的方式开启端口&#xff0c;如下 二&#xff1a;修改防火墙端口 然后在文件中增加一行。 三&#xff1a;重启防火墙&#xff0c;修改生效 service iptables restart 四&#xff1a;查看防火墙是否开启 ls…

为什么防火墙重启docker容器连接不上网络?

记录一次docker网络连接的问题&#xff1a; docker 容器化技术 linux 主机防火墙重启了之后为啥docker 就不能正常连接网络了&#xff0c;需要重启docker服务&#xff1b; 系统版本&#xff1a;redhat 7.5 docker版本:19.03.13 说起这个问题&#xff0c;就不得不说docker的网络…

Ubuntu18重启docker服务失败问题备忘

环境信息 操作系统&#xff1a;Ubuntu 18.04.2Docker&#xff1a;18.06.1-ce 现象 执行命令service restart docker&#xff0c;提示启动失败&#xff1a; roothedy:~# systemctl restart docker Failed to restart docker.service: Unit docker.service not found.原因 依…

重启docker容器命令

先查看docker容器 docker ps -a 然后用docker attach 命令进入启动的docker

Docker修改daemon.json配置,不需要重启docker或daemon-reload

dockerd reload 配置(不会重启 dockerd&#xff0c;直接修改配置) kill -SIGHUP $(pidof dockerd) # 给 dockerd 发送 SIGHUP 信号&#xff0c;dockerd 收到信号后会 reload 配置查看是否配置成功 docker info | grep -i 配置过滤关键字

不重启docker进程,重新reload加载配置

因为运行了多个容器&#xff0c;重启docker进程时会让所有容器重启&#xff0c;时间不能等&#xff1b;有没有类似nginx一样的reload机制呢&#xff1f; linux 信号认知&#xff1a;SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知…

linux定时任务 定时重启docker容器

Linux添加crontab定时任务 由于公司古董项目&#xff0c;不知原因引发了&#xff0c;容器得每次重启才能正常使用。由于工作进度的原因没办法对老项目进行构架重构。就采取了这个定时任务的方式解决办法。 首先根据网页提供资料&#xff0c;crontab分为两类&#xff0c;系统c…

服务器关机后,重启docker容器

可以先查看被关闭的容器 使用命令 docker container ls -a 然后找到容器&#xff0c;输入 docker container start xxxx&#xff08;容器名称&#xff09; 就可以启动容器了 此外&#xff0c;设置开机自启 docker update --restartalways xxxx(容器名称)

docker启动,重启,关闭命令

启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo service docker restart 关闭docker service docker stop 关闭docker systemctl stop dockerDocker容器的创建、启动、和停…

Git快速入门-常用命令之交响乐篇

Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更&#xff0c;git reset 撤销commit&#xff0c;git revert 回退远程版本库 1.概述 Git入门系列第三篇&#xff0c;介绍…

开发linux常用指令操作

1. 开发linux常用指令操作 1.文档操作常用指令 命令功能描述ls列出目录cd切换目录pwd显示目前的目录mkdir创建一个新的目录rmdir删除一个空的目录cp复制文件或目录rm移除文件或目录mv移动文件与目录或修改文件与目录的名称 自动补全 在敲出 文件/ 目录 / 命令 的前几个字母…

Git使用教程总和

Git使用教程 【一】下载安装(Windows) 【1】获取Git安装程序 Git官网地址&#xff1a;https://git-scm.com/downloads 因为我们是用Windows系统上的浏览器访问的&#xff0c;Git官网自动之别到了我使用的操作系统&#xff0c;所以右侧直接显示下载使用Windows系统的最新版本(如…

一本面向入门者的Git书

一本面向开发者的Git书《Git学习指南》 如果你在某一团队中从事开发工作&#xff0c;希望了解如何才能有效地使用Git&#xff0c;那么这本书就是一个正确的选择。本书既不是那种偏重于理论的大部头&#xff0c;也不是一本面面俱到的参考书。我们并不打算解释所有的Git命令&…

Git基础操作

文章参考了廖雪峰的Git教程&#xff0c;自己进行了具体的操作学习&#xff0c;实例演示&#xff0c;加以记录学习。 目录 Git简介 Git与GitHub 安装Git 创建版本库 把文件添加到版本库 基本文件操作 修改 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 远程…

项目开发-工具-版本控制Git完整系统化使用说明

Git使用说明 前言1. 起步1.1 关于版本控制1.2 Git 简史1.3 Git 是什么&#xff1f;1.4 命令行1.5 安装 Git1.6 初次运行 Git 前的配置1.7 获取帮助1.8 总结 2. Git 基础2.1 获取 Git 仓库2.2 记录每次更新到仓库2.3 查看提交历史2.4 撤消操作2.5 远程仓库的使用2.6 打标签2.7 G…