【发布时间】:2018-04-20 00:46:34
【问题描述】:
这是我在 stackoverflow 上的第一篇文章,我正在为学校做编程作业,并且正在解决我遇到的以下问题。
编写一个程序,从 STDIN 读取事件并将事件输出回 toSTDOUT,并为与其他事件重叠的事件翻转“重叠”标志。输入的第一行将是要遵循的事件数,N.N 将是 100 万或更多。随后的 N 行将包含以下格式的事件:
{ ‘start_time’: string format, ‘end_time’: string format, ‘overlap’: boolean represented as 1 or 0 }
示例输入:
{ ‘start_time’: “2016-01-01 00:00:00”, ‘end_time’: “2016-05-01 00:00:00”, ‘overlap’: 0}
{ ‘start_time’: “2016-02-01 00:00:00”, ‘end_time’: “2016-06-01 00:00:00”, ‘overlap’: 0}
{ ‘start_time’: “2012-01-01 00:00:00”, ‘end_time’: “2012-05-01 00:00:00”, ‘overlap’: 0}
示例输出:
{ ‘start_time’: “2016-01-01 00:00:00”, ‘end_time’: “2016-05-01 00:00:00”, ‘overlap’: 1}
{ ‘start_time’: “2016-02-01 00:00:00”, ‘end_time’: “2016-06-01 00:00:00”, ‘overlap’: 1}
{ ‘start_time’: “2012-01-01 00:00:00”, ‘end_time’: “2012-05-01 00:00:00”, ‘overlap’: 0}
输入将在“timestamp.txt”中给出,我将使用 python io 库读取它,然后将行输入到数组中并使用 sorted() 方法或 .sort() 方法按时间戳顺序对行进行排序, 一旦我有了一个排序的数组,我就会比较每个连续事件的结束时间和开始时间,看看第一个事件的 end_time 和第二个事件的 start_time 是否有重叠。
我目前坚持的是如何从每行文本中实际检索值。
因为文件是有格式的
{ ‘start_time’: “2016-01-01 00:00:00”, ‘end_time’: “2016-05-01 00:00:00”, ‘overlap’: 0}
它不是 json 格式,所以我不能做像 line = json.loads(line) 这样的事情并通过 line['start_time'] 获取值。
有人对这个问题集有什么建议吗?谢谢你。
【问题讨论】:
标签: python json date datetime stdin