python读取XML格式文件并转为json格式


XML文件如下:

<?xml version="1.0" encoding="gb2312">
<图书>
		<书名>红楼梦</书名>
		<作者>曹雪芹</作者>
		<主要内容>描述贾宝玉和林黛玉的爱情故事</主要内容>
		<出版社>人民文学出版社</出版社>
</图书>

一、python读取XML格式文件代码:

import xml.sax
import xml.sax.handler

class BooksHander(xml.sax.ContentHandler):
    def __init__(self):
        self.CurrentData=""
        self.name=""
        self.author=""
        self.contents=""
        self.press=""
    def startElement(self,tag,attributes):
        self.CurrentData=tag
        if tag =="图书":
            print("--------内容--------")

    def endElement(self,tag):
        if self.CurrentData=="书名":
            print("书名:",self.name)
        elif self.CurrentData=="作者":
            print("作者:",self.author)
        elif self.CurrentData=="主要内容":
            print("主要内容:",self.contents)
        elif self.CurrentData=="出版社":
            print("出版社:",self.press)
		self.CurrentData = ""
    def characters(self,conten):
        if self.CurrentData=="书名":
            self.name=conten
        elif self.CurrentData=="作者":
            self.author=conten
        elif self.CurrentData=="主要内容":
            self.contents=conten
        elif self.CurrentData=="出版社":
            self.press=conten

if __name__ == '__main__':
    parser=xml.sax.make_parser()
    parser.setFeature(xml.sax.handler.feature_namespaces,0)
    Handler=BooksHander()
    parser.setContentHandler(Handler)
    parser.parse("图书.xml")

二、将XML格式转换成json格式文件

import xmltodict
import json

xml=open('图书.xml','r',encoding='UTF-8')
xml_str=xml.read()

xml_json=xmltodict.parse(xml_str)
xml_json=json.dumps(xml_json,indent=4)

with open('图书.json','w') as f:
f.write(xml_json)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM