python - 请问如何在遍历列表的时候加入时间或者速度的控制?
问题描述
def dateRange(start, end, step=1, format='%Y-%m-%d'): strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime days = (strptime(end, format) - strptime(start, format)).days return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(0, days, step)]
ef weekend(): try:dayday = dateRange(st, ed)for day in dayday: d =day.replace(’-’,’’) date = d server_url = 'http://www.easybots.cn/api/holiday.php?d=' vop_url_request = urllib2.Request(server_url + date) vop_response = urllib2.urlopen(vop_url_request) vop_data = json.loads(vop_response.read()) if vop_data[date] == ’1’ or vop_data[date] == ’2’:dayday.remove(day)return dayday except:dayday = dateRange(st, ed)return dayday
有这样一个weekend函数,去请求一些内容,但是每次执行出来会缺失一些内容怀疑是网速的问题,该怎么限制遍历时的频率或者几秒内访问一次呢?
问题解答
回答1:在每次遍历后, 加个睡眠时间咯
time.sleep(1) # 睡眠1秒
也就是在你的代码可以调整为:
for day in dayday: ...(访问处理代码) time.sleep(1) 回答2:
找到问题了,在遍历的时候对原列表进行remove操作会使列表长度发生变化,从而导致列表错位导致,最后出来的结果不是想要的结果
相关文章:
1. mysql建表报错,查手册看不懂,求解?2. php - mysql连表统计查询3. Navicat for mysql 中以json格式储存的数据存在大量反斜杠,如何去除?4. mysql - mybatis 查询 统计某个列数量 ,根据一个列,分组查询,在xml文件如何接收5. mysql时间格式问题6. MySQL数据库中文乱码的原因7. mysql - 分库分表、分区、读写分离 这些都是用在什么场景下 ,会带来哪些效率或者其他方面的好处8. mysql - 连续的24条sql语句,一条条查,还是union all好?9. MySQL不知道错哪里了?10. mysql主从复制 REPLICATE_DO_DB 参数从服务器reboot后每次都回滚为初始设置
