Python ElementTree数据清洗


简介

XML是一种可扩展标记语言,被用来传输和存储数据。它是一种有逻辑的树结构。

Python使用xml.ElementTree解析

import xml.etree.ElementTree as ET
import codecs
import json

codecs用于打开文件,json用于保存清洗完的数据。

tree = ET.parse()        #获取目录树
root = tree.getroot()     #得到树根 
root = ET.fromstring()    #从字符串直接解析出树根

获取树根,然后进行操作

root.tag        #root元素的标记名
root.attrib        #root元素的属性,为一个dic
for child in root:    #便利子元素
    print(child.tag, child.attrib)
root[0][1].text     #将元素视为多维数组,用下标访问
root.find("element").text     #找出root下element下的内容字符串
title = root.get("Title")     #获取root元素的title属性

for neighbor in root.iter('neighbor'):    #遍历所有特定元素,递归到所有,子、孙...元素
    print(neighbor.attrib)
for country in root.findall('country'):    #找出所有country元素,仅子代
     rank = country.find('rank').text
     name = country.get('name')
     print(name, rank)
for country in root.find('country'):    #仅找出第一个符合的子代

其他涉及知识

import os

def mkdir(path):    #创建文件夹
    if not os.path.exists(path):
        os.mkdir(path)

for son_path in os.listdir(root_path):    #遍历root_path下的文件

json.dump(dic, file_obj, ensure_ascii=False, indent=4, separators=(',', ': '))    #将字典dic输出到文件file_obj中,不对ascii进行编码,缩进4,分隔符为','以及': '

暂时到此


文章作者: 彰寒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彰寒 !
评论
 上一篇
CS:APP I/O_lab CS:APP I/O_lab
实验步骤本次试验中,主要涉及keyboard.S,tty_io.c,console.c。其中:keyboard.S主要实现键盘中断处理过程,当按下键盘时,出发中断,由对应函数进行处理,并将字符放入read_q写队列中;tty_io.c包含t
2018-12-28
下一篇 
CS:APP Attack_lab CS:APP Attack_lab
实验描述本次实验利用程序需要外部输入的特点,输入机器码对程序返回值覆盖,以达到攻击的目的,即在getbuf函数需要的输入中做手脚,以致不能正常返回,执行攻击代码。 第一阶段第一阶段中栈随机化未开机,可以得知内存位置的确切地址,且栈中机器码可
2018-12-08
  目录