在Python中从pyephem日期字符串提取数据

在Python中从pyephem日期字符串提取数据,python,pyephem,Python,Pyephem,我想提取日出时间,如果我做了以下操作 sun = ephem.Sun() r1 = home.next_rising(sun) print ("Visual sunrise %s" % r1) risehr = r1[10:12] print ("Rise Hour = %s" % risehr) 我弄错了 >>'ephem.Date' object has no attribute '__getitem__' 我可以打印字符串r1,但不能从中提取 我尝试了类似问题的解决方案,但

我想提取日出时间,如果我做了以下操作

sun = ephem.Sun()
r1 = home.next_rising(sun)
print ("Visual sunrise %s" % r1)
risehr = r1[10:12]
print ("Rise Hour = %s" % risehr)
我弄错了

>>'ephem.Date' object has no attribute '__getitem__'
我可以打印字符串r1,但不能从中提取
我尝试了类似问题的解决方案,但没有取得任何进展,如果这是一篇双关文章,我深表歉意。

据我所知,您想在日出时分打印您的问题。r1是对象。你可以用蛮力做到

...
risehr = str(r1)[10:12]
...
或者您可以将r1对象转换为datetime,将datetime转换为str表示

...
risehr = r1.datetime().strftime('%H') 
...
或者先把它转换成元组


所有可用选项都可以在“分段转换”中阅读。

据我所知,您只想打印日出时间。r1是对象。你可以用蛮力做到

...
risehr = str(r1)[10:12]
...
或者您可以将r1对象转换为datetime,将datetime转换为str表示

...
risehr = r1.datetime().strftime('%H') 
...
或者先把它转换成元组


您可以在节内转换中阅读所有可用选项。

@kvorbiev回答了如何从数据的字符串表示中提取的问题。但你问题的另一半是错误:

“ephem.Date”对象没有属性“\uuu getitem\uuu”

根据下一个上升函数的

如果搜索成功,则返回日期值

:

日期以浮点数的形式存储和返回。只有在打印、传递到str或使用“%s”格式化时,日期才会表示为给出日历日期和时间的字符串

当您发出命令risehr=r1[10:12]时,Python解释器试图从对应于切片10:12的日期对象获取字段。如果没有该方法,切片对日期对象没有意义

但一切都没有失去!您仍然可以获取日期对象的时间信息:

tuple将日期拆分为年、月、日、小时、分钟和秒

然后,您可以根据需要对该元组进行切片以获取小时数:

小时=r1.元组[3]

或者详尽地说:


年、月、日、时、分、秒=r1。tuple

@kvorbiev回答了如何从数据的字符串表示中提取数据的问题。但你问题的另一半是错误:

“ephem.Date”对象没有属性“\uuu getitem\uuu”

根据下一个上升函数的

如果搜索成功,则返回日期值

:

日期以浮点数的形式存储和返回。只有在打印、传递到str或使用“%s”格式化时,日期才会表示为给出日历日期和时间的字符串

当您发出命令risehr=r1[10:12]时,Python解释器试图从对应于切片10:12的日期对象获取字段。如果没有该方法,切片对日期对象没有意义

但一切都没有失去!您仍然可以获取日期对象的时间信息:

tuple将日期拆分为年、月、日、小时、分钟和秒

然后,您可以根据需要对该元组进行切片以获取小时数:

小时=r1.元组[3]

或者详尽地说:


年、月、日、时、分、秒=r1.tuple

打印时会转换为字符串,如strr1,您想从中提取一部分吗?例如,strr1[10:12]home的赋值语句在哪里?对不起,“home”是我的lat/long def。当你打印它时,它被转换成字符串,比如strr1,你想从中分一杯羹吗?例如,strr1[10:12]家里的任务说明在哪里?对不起,“家”是我的lat/long DEF。非常感谢。蛮力很好用,我也会尝试更优雅的方法。谢谢。蛮力很好用,我也会尝试更优雅的方法。元组方法看起来非常简洁。我从所有对我的简单问题有帮助的回答中学到了很多。非常感谢大家提供的信息丰富的反馈。元组方法看起来非常简洁。我从所有对我的简单问题有帮助的回答中学到了很多。非常感谢大家提供的信息丰富的反馈。