《Python编程从入门到实践》(第16章.下载数据)

1.分析CSV文件头 P313

import csv
filename = 'death_valley_2014.csv'
with open(filename) as f:
    reader = csv.reader(f) #创建一个与文件相关联的阅读器对象,并存储在reader中,只能在with代码块中使用
    header_row = next(reader) #返回文件的下一行,这里只调用了一次,所以返回的是文件的第一行

2.模块datetime P316

from datetime import datetime
first_date = datetime.striptime('2014-7-1', '%Y-%m-%d')#将字符创‘2014-7-1’转换成表示相应日期的对象

3.绘制斜的x轴标签 P318

fig.autofmt_xdate()

4.给图标区域着色 P320

使用方法fill_between(),它接受一个x值系列和两个u值系列,并填充两个y值系列之间的空间。

plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1)#alpha指定颜色透明度,0表示完全透明,1表示完全不透明。

5.错误检查 P321

如果数据中某个值为空,python无法将空字符串转换为整数显示在图表上。
为此:

        try:
            current_date = datetime.strptime(row[0], "%Y-%m-%d")
            high = int(row[1])
            low = int(row[3])
        except ValueError: #缺少一项数据时,Python会引发ValueError异常
            print(current_date, 'missing data')
        else:
            dates.append(current_date)
            highs.append(high)
            lows.append(low)

6.下载数据 P326

json_url = 'https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json'
# 读取数据
req = requests.get(json_url ) #request通过get()方法想服务器发送请求,返回的结果存储在变量req中
# 将数据写入文件
with open('btc_close_2017_urllib.json', 'w') as f:  
    f.write(req.text) #先转换成字符再写到文件中/write() argument must be str, not list
file_requests = req.json() #将数据转换成Python 列表
print(file_requests)

7.将两个列表打包成一个元组,返回列表格式 P332

x = [1,2,3]
y = [4,5,6]
>>>c = zip(x,y)
[(1,4),(2,5),(3,6)]

8.按每个元组中第一个元素分组 P332

for x, y in groupby(c, key=lambda _: _[0]):  #x返回索引,y返回一个迭代器,包含了所有分组的列表

9.将一周七天的英文单词替换成1-7的整数 P334

idx_week = dates.index('2017-12-11')
wd = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
weekdays_int = [wd.index(w) + 1 for w in weekdays[1:idx_week]]

weekdays是一个存储了星期几的列表

你可能感兴趣的:(python,列表,python)