我如何在 python 中使用显示时间的数据字符串(从网站的 table 中抓取)?

How can i use string of data showing times (scraped from a table from a website) in python?

我需要我的 Raspberry Pi 每天在特定时间播放声音。为此,我使用 schedule for python:

schedule.every().day.at("20:00").do(playsound)

这很好用。

我在 python 中用 selenium 从一个网站上抓取时间。我得到的数据看起来像这样:

29.10.2017 00:00 05:00 10:00 15:00 20:00 
30.10.2017 00:10 05:10 10:10 15:10 20:10
31.10.2017 00:00 05:50 10:10 15:15 20:20
01.11.2017 10:00 06:00 11:00 16:00 21:00
...

问题是:如何在 python 中使用这些数据?

我可以使用 .split() 将数据放入一个数组中,但是这样就很难查找了。从数组中,我可以将其放入字典中:

dict = {'Time1': arrayOfTimes[1], 'Time2': arrayOfTimes[2],...}

但是我是否必须为每一天创建一个字典?或者覆盖字典?

如果我想每天每时每刻都播放声音,我该如何实现?更准确地说:我今天想在 00:00 和 05:00 和 10:00 等位置播放声音。然后我想在明天的新时间再次播放声音:00:10 和 05:10 和 10:10 等

您在创建数组和字典方面走在了正确的路线上。但是你想避免分别为每一天创建字典。

假设你的数据是一个字符串data,你可以使用下面的代码:

times = {}

for x in data.split("\n"):
    split = x.split()
    times[split[0]]=split[1:]

这首先遍历输入的每一行,然后在字典中创建一个条目,以日期作为键,该行的其余部分(时间)作为值。

times 看起来像

{'31.10.2017': ['00:00', '05:50', '10:10', '15:15', '20:20'],
'30.10.2017': ['00:10', '05:10', '10:10', '15:10', '20:10'], 
'29.10.2017': ['00:00', '05:00', '10:00', '15:00', '20:00'], 
'01.11.2017': ['10:00', '06:00', '11:00', '16:00', '21:00']}

然后,当你到达正确的一天时,你可以简单地查看(例如)times['29.10.2017'] - 然后你可以循环以在 schedule.[=16 中进行适当的调用=]