文章目录
- 一、说明:
- 二、简单操作使用:
- 1、json转xml:
- ①、安装:
- ②、代码中的josn
- ③、代码:
- 2、json转html:
- ①、安装:
- ②、代码:
- 3、xml转json:
- ①、安装:
- ②、代码:
- ③、去掉属性:
- 4、html转json(暂时没有解决)
一、说明:
今天突然有个想法,吧json转化为xml和html然后就搜索,真的找到了相关的一些模块,既然有了模块,就找到几个简单的实例做个示范。
但是有一个我测试,没有弄成,还没有搞懂如何将html转换成json的模块的使用:
html2json模块地址
二、简单操作使用:
1、json转xml:
①、安装:
模块安装:
pip install dicttoxml
②、代码中的josn
我测试的json:
[
{
"新建文件夹": [
"毒液v3_第01卷_06汉化.jpg.jpg",
"毒液v3_第01卷_07汉化.jpg.jpg",
"毒液v3_第01卷_08汉化.jpg.jpg",
"毒液v3_第01卷_09汉化.jpg.jpg",
"毒液v3_第01卷_10汉化.jpg.jpg",
"毒液v3_第01卷_12汉化.jpg.jpg",
"毒液v3_第01卷_13汉化.jpg.jpg",
"毒液v3_第01卷_14汉化.jpg.jpg",
"毒液v3_第01卷_15汉化.jpg.jpg",
"毒液v3_第01卷_16汉化.jpg.jpg",
"毒液v3_第01卷_18汉化.jpg.jpg",
"毒液v3_第01卷_19汉化.jpg.jpg",
"毒液v3_第01卷_20汉化.jpg.jpg",
"毒液v3_第01卷_21汉化.jpg.jpg"
]
},
"毒液v3_第01卷_01汉化.jpg.jpg",
"毒液v3_第01卷_02汉化.jpg.jpg",
"毒液v3_第01卷_03汉化.jpg.jpg",
"毒液v3_第01卷_04汉化.jpg.jpg",
"毒液v3_第01卷_05汉化.jpg.jpg",
"毒液v3_第01卷_06汉化.jpg.jpg",
"毒液v3_第01卷_07汉化.jpg.jpg",
"毒液v3_第01卷_08汉化.jpg.jpg",
"毒液v3_第01卷_09汉化.jpg.jpg",
"毒液v3_第01卷_10汉化.jpg.jpg",
"毒液v3_第01卷_11汉化.jpg.jpg",
"毒液v3_第01卷_12汉化.jpg.jpg",
"毒液v3_第01卷_13汉化.jpg.jpg",
"毒液v3_第01卷_14汉化.jpg.jpg",
"毒液v3_第01卷_15汉化.jpg.jpg",
"毒液v3_第01卷_16汉化.jpg.jpg",
"毒液v3_第01卷_17汉化.jpg.jpg",
"毒液v3_第01卷_18汉化.jpg.jpg",
"毒液v3_第01卷_19汉化.jpg.jpg",
"毒液v3_第01卷_20汉化.jpg.jpg",
"毒液v3_第01卷_21汉化.jpg.jpg"
]
③、代码:
import dicttoxml
import json
dict_str = open('2、漫画柜2.json','r',encoding='utf-8').read()
data_dict = json.loads(dict_str)
data_xml = dicttoxml.dicttoxml(data_dict)
print("data_xml", data_xml)
with open('data.xml','w',encoding='utf-8') as file:
file.write(data_xml.decode())
生成的xml:
2、json转html:
①、安装:
地址: 安装命令:
pip install json2html
②、代码:
json和上面测试一致。
这个使用模块返回的HTML是没有html的头文件的,所以我这里加入了头文件。把json转换的html直接嵌入到bady中。
代码:
from json2html import *
import json
dict_str = open('2、漫画柜2.json','r',encoding='utf-8').read()
data_dict = json.loads(dict_str)
data_xml = json2html.convert(data_dict)
# data_xml = json2html.convert(json=data_dict, table_attributes="id=\"info-table\" class=\"table table-bordered table-hover\"")
print("data_xml", data_xml)
html_head = '''<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{}
</body>
</html>'''
result_html = html_head.format(data_xml)
with open('data1.html','w',encoding='utf-8') as file:
file.write(result_html)
3、xml转json:
①、安装:
直接安装命令:
pip install xmltodict
②、代码:
我这里直接用刚刚转换成的xml进行测试:
import json
import xmltodict
f = open('data.xml', 'r', encoding='utf-8')
d = f.read()
# 先将xml转换为字典
data = xmltodict.parse(d)
print(data)
# 再将字典转换为json
strjson = json.dumps(data)
print(strjson)
with open('data2.json','w', encoding='utf-8') as file:
json.dump(data,file,ensure_ascii=False,indent=4)
最后生成的比原来的多个属性。
③、去掉属性:
根据上面的,然后我就想着能否将@的属性字典去掉,然后进入源码查看。
最终找到去掉@的方法:
上图就是源码使用的说明,吧xml_attribs参数设置为False就可以忽略了。
代码:
import json
import xmltodict
f = open('data.xml', 'r', encoding='utf-8')
d = f.read()
# 先将xml转换为字典
# data = xmltodict.parse(d)
data = xmltodict.parse(d, xml_attribs=False)
print(data)
# 再将字典转换为json
strjson = json.dumps(data)
print(strjson)
with open('data3.json','w', encoding='utf-8') as file:
json.dump(data,file,ensure_ascii=False,indent=4)
这次生成的就比较干净了:
和原先的json一样。
4、html转json(暂时没有解决)
这个我找到了模块,但是还没有找到如何使用的,没有看懂如果使用的,如果有会的,希望告知一下哈。
命令安装:
pip install html2json
这个如果有会的还希望告知一下,我这里暂时没有找到如何使用,没有看懂如何用template 参数。