zoukankan      html  css  js  c++  java
  • 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)
    
    
  • 相关阅读:
    HTTP压力测试工具apache的ab的使用方法
    [转]Memcached 协议中英文对照
    [转]Windows下删除.svn文件夹的最简易方法
    [转]50 个便利的 Web 设计工具
    Navicat数据存放位置和备份数据库路径设置
    Silverlight第三方控件
    MVC3.0中使用JQuery.DataTable插件。
    什么是句柄?为什么会有句柄?HANDLE
    WPF内存释放
    ArcGis for wpf 符号渲染
  • 原文地址:https://www.cnblogs.com/lvjiuluan/p/13782125.html
Copyright © 2011-2022 走看看