Python实战计划——第三周第三节:使用find函数精确查找数

2016-06-07  本文已影响378人  唐宗宋祖

视频重点

练习代码

扩展

1. 视频重点

  1. from datetime imort timedelta,date处理日期。第一步:统一日期格式。第二步:转换数据。
for i in item_info.find():
    frags = i['pub_date'].split('-')
    if len(frags) == 1:
        date = frags[0]
    else:
        date = '{}.{}.{}'.format(frags[0],frags[1],frags[2])
    item_info.update_one({'_id':i['_id']},{'$set':{'pub_date':date}})
  1. 用两个for循环来实现每一x坐标上的y轴数据
def get_data_within(date1,date2,areas):
    for area in areas: #每一地区下(对应不同折线)
        area_day_posts = []
        for date in get_all_dates(date1,date2):#x轴的数据,两个日期间的每一个日期
            a = list(item_info.find({'pub_date':date,'area':area}))#将两个for迭代出的数据,作为find参数,找到数据
            each_day_post = len(a)#统计数据个数,即y轴发帖量
            area_day_posts.append(each_day_post)
        data = {
            'name': area,
            'data': area_day_posts,#与上次的柱状体不同,是描述name的一组数据
            'type': 'line'
        }
        yield data
  1. charts图表中折线图,option的含义
    charts.plot(series, options=options,show='inline')options时plot方法的参数之一,定义
options = {
    'chart'   : {'zoomType':'xy'},
    'title'   : {'text': '发帖量统计'},
    'subtitle': {'text': '可视化统计图表'},
    'xAxis'   : {'categories': [i for i in get_all_dates('2015.12.24','2016.01.05')]},
    'yAxis'   : {'title': {'text': '数量'}}
    }

作为plot方法的传递参数

2. 练习代码

3-3homework.jpg

3. 扩展

find函数的用法
操作符$in和$slice
timedelta函数
find参数1,找谁,参数2,返回什么数据,用0和1来控制不显示跟显示
不会更改原来的数据结构
条件操作符$in 分片$slice

上一篇下一篇

猜你喜欢

热点阅读