一,CSV格式数据读取
#-*- coding:utf-8 -*- import csv import time def readfile(path): csvfile = open(path,'rb') reader = csv.reader(csvfile) for row in reader: print row if __name__ == '__main__': path = raw_input('文件路径:') start_time = time.time() readfile(path) finish_time = time.time() all_time = finish_time - start_time print('花费的时间:%d 秒' %all_time)
本段代码是用于读取CSV格式数据的代码。Reader对象是一个保存数据行的Python容器。通过一个for循环将CSV中每一行数据保存在变量row中,然后将数据打印出来。调用time模块来统计整个数据读取的时间花费。
运行结果如下:
将 列表格式输出 改成 字典格式输出:
只要将上面代码中的
reader = csv.reader(csvfile)
修改为:
reader = csv.DictReader(csvfile)
运行结果:
运行的时间比列表生成的时间的开销要大。
二,JSON数据导入
Python json 库的 loads 函数接收字符串作为参数,不接收文件作为参数。 而Python csv 库的
reader 函数接收打开的文件作为参数。
#-*- coding:utf-8 -*- import json import time def readfile(path): jsonfile = open(path).read() reader = json.loads(jsonfile) for row in reader: print row if __name__ == '__main__': path = raw_input('文件路径:') start_time = time.time() readfile(path) finish_time = time.time() all_time = finish_time - start_time print('花费的时间:%d 秒' %all_time)
三,XML数据导入
XML 是一种标记语言,也就是说,它具有包含格式化数据的文档结构。 XML 文档本质上只是格式特殊的数据文件
在 JSON 中你可以用键 / 值对来保存数据,而在 XML 中保存数据可以是两个一组甚至
三四个一组。 XML 用标签和属性来保存数据,
#-*- coding:utf-8 -*- from xml.etree import ElementTree as ET tree = ET.parse('data-text.xml') root = tree.getroot() data = root.find('Data') all_data = [] for observation in data: record = {} for item in observation: lookup_key = item.attrib.keys()[0] if lookup_key == 'Numeric': rec_key = 'NUMERIC' rec_value = item.attrib['Numeric'] else: rec_key = item.attrib[lookup_key] rec_value = item.attrib['Code'] record[rec_key] = rec_value all_data.append(record) print all_data首先导入ElementTree解析XML,也可用lxml和minidom的库来进行解析。 为了理解遍历树(及其包含的数据)的方法,我们从树的根元素( root )开始。根节点是第一个 XML 标签。调用 getroot 函数来获取树的根元素