• Python——数据存储:XML操作


      XML文件已被广泛使用在各种应用中,如Web、移动APP、桌面GUI应用等等,几乎都会有XML文件的身影。不过现在一般不会将大部分的应用数据用xml文件存储,但至少会使用XML文件保存一些配置信息。在Python中,需要导入XML模块或其子模块,并利用提供的API来操作XML文件。如,xml.etree.ElementTree模块,通过该模块的parse函数读取XML文件。
    由于下面XML操作都需要用到XML文件,文件如下:
    persons.xml文件的内容:

    <?xml version="1.0" ?>
    <persons>
        <item type="int">20</item>
    <item type="str">names</item>
    <item type="dict" uuid="123">
    <salary type="int">2000</salary>
    <age type="int">30</age>
    <name type="str">Gell</name>
    </item>
    <item type="dict" uuid="45">
    <salary type="int">3000</salary>
    <age type="int">40</age>
    <name type="str">Chen</name>
    </item>
    <item type="dict" uuid="167">
    <salary type="int">4000</salary>
    <age type="int">50</age>
    <name type="str">Ling</name>
    </item>
    </persons>
    以下介绍python语言对XML文件的具体操作。


    一、读取与检索XML文件
    from xml.etree.ElementTree import parse

    doc = parse('./files/persons.xml')
    for item in doc.iterfind('item'):
    # 读取id节点的值
    salary = item.findtext('salary')
    # 读取name节点的值
    age = item.findtext('age')
    # 读取price节点的值
    name = item.findtext('name')

    type = item.get('type')
    uuid = item.get('uuid')
    print('type={}'.format(type))
    print('uuid={}'.format(uuid))
    print('salary={}'.format(salary))
    print('age', '=', age)
    print('name', '=', name)
    print('-----------------')

    二、字典转成XML字符串
    import dicttoxml
    from xml.dom.minidom import parseString
    import os

    d = [20,'names',
    {'name':'Gell','age':30,'salary':2000},
    {'name':'Chen','age':40,'salary':3000},
    {'name':'Ling','age':50,'salary':4000}
    ]
    bxml = dicttoxml.dicttoxml(d,custom_root='persons')
    xml = bxml.decode('utf-8')
    print(xml)
    print('----------------------')
    dom = parseString(xml)
    prettyxml = dom.toprettyxml(indent=' ')
    print(prettyxml)

    #将XML字符串保存到文件中。
    os.makedirs('files',exist_ok=True)
    f=open('files/persons.xml','w',encoding='utf-8')
    f.write(prettyxml)
    f.close()

    三、XML字符串转为python字典
    import xmltodict
    import pprint

    f=open('./files/persons.xml','rt',encoding='utf-8')
    xml = f.read()
    d=xmltodict.parse(xml)
    print(d)
    f.close()

    pp = pprint.PrettyPrinter(indent=0)
    pp.pprint(d)
     

    参考文献:
    1、《python从菜鸟到高手》,作者:李宁
  • 相关阅读:
    双指针
    二分查找
    二叉树
    递归思想
    排序算法
    Java常用集合使用方法总结
    攻防世界-PHP文件包含
    正则表达式随笔
    ts 函数
    ts 联合类型
  • 原文地址:https://www.cnblogs.com/chenhaiming/p/9881819.html
Copyright © 2020-2023  润新知