Python-数据处理-数据读取01

一,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 函数来获取树的根元素
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值