python 下json转xml、html,xml转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(暂时没有解决)

这个我找到了模块,但是还没有找到如何使用的,没有看懂如果使用的,如果有会的,希望告知一下哈。

html2json模块地址:

命令安装:

pip install html2json

这个如果有会的还希望告知一下,我这里暂时没有找到如何使用,没有看懂如何用template 参数。

发布了197 篇原创文章 · 获赞 105 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_42081389/article/details/103487570