文章目的
最近遇到很多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