1. CSV 数据
使用csv 库
import csv
with open('stocks.csv') as f:
f_csv = csv.reader(f)
headers = next(f_csv)
for row in f_csv:
# Process row
...
with open('stocks.csv') as f:
f_csv = csv.DictReader(f)
for row in f_csv:
# process row
...
2. JSON 数据
json 模块提供了一种很简单的方式来编码和解码JSON 数据
import json
data = {
'name' : 'ACME',
'shares' : 100,
'price' : 542.23
}
json_str = json.dumps(data)
data = json.loads(json_str)
# Writing JSON data
with open('data.json', 'w') as f:
json.dump(data, f)
# Reading data back
with open('data.json', 'r') as f:
data = json.load(f)
3. XML 数据
可以使用xml.etree.ElementTree 模块从简单的XML 文档中提取数据。
from urllib.request import urlopen
from xml.etree.ElementTree import parse
# Download the RSS feed and parse it
u = urlopen('http://planet.python.org/rss20.xml')
doc = parse(u)
# Extract and output tags of interest
for item in doc.iterfind('channel/item'):
title = item.findtext('title')
date = item.findtext('pubDate')
link = item.findtext('link')
print(title)
print(date)
print(link)
print()
增量式解析大型XML 文件
iterparse() 方法允许对XML 文档进行增量操作。使用时,你需要提供文件名和一个包含下面一种或多种类型的事件列表: start , end, start-ns 和end-ns 。由iterparse() 创建的迭代器会产生形如(event, elem) 的元组,其中event 是上述事件列表中的某一个,而elem 是相应的XML 元素。
尽管xml.etree.ElementTree 库通常用来做解析工作,其实它也可以创建XML文档。from xml.etree.ElementTree import Element,from xml.etree.ElementTree import tostring
4. Base64 数据
base64 模块中有两个函数b64encode() and b64decode() 可以做到编码解码。
>>> # Some byte data
>>> s = b'hello'
>>> import base64
>>> # Encode as Base64
>>> a = base64.b64encode(s)
>>> a
b'aGVsbG8='
>>> # Decode from Base64
>>> base64.b64decode(a)
b'hello'
5. 二进制数组数据
可以使用struct 模块处理二进制数据。>>> from struct import Struct
>>> record_struct = Struct('<idd')
>>> record_struct.size
20
>>> record_struct.pack(1, 2.0, 3.0)
b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x08@'
>>> record_struct.unpack(_)
(1, 2.0, 3.0)
如果你的程序需要处理大量的二进制数据,你最好使用numpy 模块。你可以将一个二进制数据读取到一个结构化数组中而不是一个元组列表中。
6. 数据的累加与统计操作
对于任何涉及到统计、时间序列以及其他相关技术的数据分析问题,都可以考虑使用Pandas 库。