python之数据处理

1.读写 CSV 数据,对于大多数的 CSV 格式的数据读写问题,都可以使用 csv 库。

import csv
with open('filename.csv')as f:
    f_csv = csv.reader(f)
    headers = next(f_csv)
    for row in f_csv: #row 为列表形式

import csv
with open('filename.csv') as f:
    f_csv = csv.DictReader(f)
    for row in f_csv:#row为字典形式
        print(row['stock'])

2.写入 CSV 数据,可以使用 csv 模块,先创建一个 writer对象。

import csv
headers = ['Symbol','Price','Date','Time','Change','Volume']
rows = [('AA', 39.48, '6/11/2017', '9:36am', -0.18, 181800),
('AIG', 71.38, '6/11/2017', '9:36am', -0.15, 195500),
('AXP', 62.58, '6/11/2017', '9:36am', -0.46, 935000),
]
with open('filename.csv','w')as f:
    f_csv = csv.writer(f)
    f_csv.writerow(headers)
    f_csv.writerows(rows)


#如果是字典数据
import csv

headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume']
rows = [{'Symbol':'AA', 'Price':39.48, 'Date':'6/11/2017',
'Time':'9:36am', 'Change':-0.18, 'Volume':181800},
{'Symbol':'AIG', 'Price': 71.38, 'Date':'6/11/2017',
'Time':'9:36am', 'Change':-0.15, 'Volume': 195500},
{'Symbol':'AXP', 'Price': 62.58, 'Date':'6/11/2017',
'Time':'9:36am', 'Change':-0.46, 'Volume': 935000},]

with open('filename.csv','w')as f:
    f_csv=csv.DictWriter(f,headers)
    f_csv.writeheader()
    f_csv.writerows(rows)

3.读写 JSON(JavaScript Object Notation) 编码格式的数据

import json
data ={'name':'songshichao',
       'sex':'man',
       'age':18}
json_str = json.dumps(data) #Python 数据结构转换为json
data = json.loads(json_str)#将一个 JSON 编码的字符串转换回一个Python 数据结构

4,.如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码 JSON 数据

with open('data.json', 'w') as f:
    json.dump(data, f)


with open('data.json', 'r') as f:
    data = json.load(f)

5.当数据的嵌套结构层次很深或者包含大量的字段时,为了解决这个问题, 可以考虑使用 pprint 模块的 pprint() 函数来代替普通的 print() 函数

from urllib.request import urlopen
import json
from pprint import pprint
u = urlopen('http://search.....')
resp =json.loads(u.read().decode('utf-8'))
pprint(resp)

#一般来讲,JSON 解码会根据提供的数据创建 dicts 或 lists。如果你想要创建其他类型的对象,可以给 json.loads() 传递 object pairs hook 或 object hook 参数

6.解析简单的 XML 数据,使用 xml.etree.ElementTree 模块从简单的 XML 文档中提取数据

import requests
from xml.etree.ElementTree import parse
u = requests.get('http://planetpython.org/rss20.xml')
doc = parse(u)
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()

 

posted @ 2018-04-10 23:25  Mr.SSC  阅读(427)  评论(0编辑  收藏  举报