如何解决以预定的时间间隔从列表中打印 X 个项目
我有一个包含一些数据(姓名、地址)的 json 数组,我想每五分钟打印一个姓名:到目前为止我已经得到了这个:
def get_data(i):
f = open('data.json','r')
infos = json.load(f)
name = infos['people'][i]['name']
print(name)
i+=1
schedule.every(5).minutes.do(get_data,i=0)
while True:
schedule.run_pending()
time.sleep(1)
但它显然不起作用,因为每次调用 get_data 时我都将 i 设置为零,有没有更好的方法来做到这一点?
解决方法
您可以像这样将这个函数包装在一个类中:
import schedule
import json
import time
class Run:
def __init__(self):
self.i = 0
def get_data(self):
with open('data.json') as f:
infos = json.load(f)
try:
name = infos['people'][self.i]['name']
print(name)
except IndexError:
print('No name for index:',self.i)
else:
self.i += 1
if __name__ == '__main__':
run = Run()
schedule.every(5).minutes.do(Run.get_data,run)
while True:
schedule.run_pending()
time.sleep(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。