zoukankan      html  css  js  c++  java
  • 如何构建xml文档?

    需求:
    某些时候,我们需要将其他格式数据转换为xml,例如我们要把yikang.csv文件,转换成相应的xml。
    yikang.csv:
    日期,股票代码,名称,收盘价,最高价,最低价,开盘价,前收盘,涨跌额,涨跌幅,换手率,成交量,成交金额,总市值,流通市值,成交笔数
    2016-01-08,'002566,益盛药业,14.23,14.46,13.26,14.2,13.8,0.43,3.1159,2.6702,8837225,124872735.08,4709441268.0,4709441268.0,8033

    yikang.xml:
    ...

    思路:
    使用标准库中的xml.etree.Elementree,构建ElementTree,使用write方法写入文件

    代码:

    import csv
    from xml.etree.ElementTree import Element,ElementTree
    from e2 import pretty
    
    def csvtoxml(fname):
        with open(fname,'r',encoding='gbk') as f:
            reader = csv.reader(f)  # 读取csv,要先创建一个reader
            headers = next(reader)  # 读取csv的头部信息
    
            root = Element('Data')  # 为xml创建一个根元素
            # 迭代csv文件中的每一行
            for row in reader:
                eRow = Element('Row')  # 每一行创建一个row元素
                root.append(eRow)
                # 同时迭代tag(headers),text(row)
                for tag, text in zip(headers,row):
                    e = Element(tag)  # 为headers中每一个创建一个xml中的元素
                    e.text = text
                    eRow.append(e)  # 将孙元素加入到父元素中去,构建好层级
        pretty(root)  # 进行格式的美化
        return ElementTree(root)  # 创建一个elementtree,即一个xml对象
    
    if __name__ == "__main__":
        et = csvtoxml('yikang.csv')
        # 调用write方法把xml对象写入文件中,生成一个xml文件
        et.write('yikang.xml')
    
    e2.py:
    
    def pretty(e,level=0):
        if len(e) > 0:
            e.text = '
    ' + '	' * (level + 1)
            for child in e:
                pretty(child,level + 1)
            child.tail = child.tail[:-1]
        e.tail = '
    ' + '	' * level
    
    
  • 相关阅读:
    MaxScript 计算执行时间差
    MaxScript 几种类GUID的生成方法
    MaxScript 防坑规范指南
    样式测试
    设置.MAX文件程序关联
    Python相关网站(持续更新)
    Python程序使用cx_freeze打包(报错)
    Python对Excel的操作(模块win32com)
    Python对Excel的操作(模块xlrd)
    python模块安装
  • 原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13338306.html
Copyright © 2011-2022 走看看