XML格式文件转JSON文件python代码

文章目的

最近遇到很多xml文件需要转化为json文件格式,希望可以通过代码可以批量的进行转换

使用的代码

import json
import xmltodict
    try:
        Name1 = "自己设置的"
        with open('接口文件修改- 英文/'  +Name1+ '.xml', 'r', encoding="UTF-16") as xml_file:
                # xml_files.append(xml_file.read())
            parsed_data = xmltodict.parse(xml_file.read())
                    # 关闭文件流,其实 不关闭with也会帮你关闭
            xml_file.close()
                    # 将字典类型转化为json格式的字符串
            json_conversion = json.dumps(parsed_data, ensure_ascii=False, indent=4)
                    # 将字符串写到文件中
            with open('Json/'+Name1+'.json', 'w', encoding="UTF-8") as json_file:
                json_file.write(json_conversion)
                json_file.close()
    except:
        print(name[i])
        with open('接口文件修改- 英文/'  +Name1+ '.xml', 'r', encoding="UTF-8") as xml_file:
                # xml_files.append(xml_file.read())
            parsed_data = xmltodict.parse(xml_file.read())
                    # 关闭文件流,其实 不关闭with也会帮你关闭
            xml_file.close()
                    # 将字典类型转化为json格式的字符串
            json_conversion = json.dumps(parsed_data, ensure_ascii=False, indent=4)
                    # 将字符串写到文件中
            with open('Json/'+Name1+'.json', 'w', encoding="UTF-8") as json_file:
                json_file.write(json_conversion)
                json_file.close()

技术细节

注意XML中编码格式

这种是utf-8编码格式

<?xml version="1.0" encoding="utf-8"?>

这种是utf-16编码格式

<?xml version="1.0" encoding="utf-16"?>

所以在open的时候需要区分编码格式

使用try,expect

try非常好用,可以控制error,让代码运行下去,不至于中间卡住

在json写入的时候需要有可读性

如果用的代码是json.dumps(),这样的代码没有可读性可言
需要改成json.dumps(,,indent=4)

文件名获取

当有多个文件夹的时候需要批量的获得文件名字,
可以考虑下面的cmd指令

-ls

这种代码可以得到的效果如下
在这里插入图片描述

ls -name

设置限制条件,达到要求,效果如下
在这里插入图片描述
小白萌新一枚,文章比较简单,可能有错误 o(〃‘▽’〃)o

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值