@kvorobiev a répondu à la question de savoir comment extraire d'une représentation sous forme de chaîne de vos données. Mais l'autre moitié de votre question était l'erreur:
'ephem.Date' object has no attribute '__getitem__'
Selon le PyEphem documentation pour la fonction next_rising()
,
If the search is successful, returns a Date value.
Furthermore, Date
objects have an important property:
Dates are stored and returned as floats. Only when printed, passed to str(), or formatted with '%s' does a date express itself as a string giving the calendar day and time.
Lorsque vous avez donné la commande risehr = r1[10:12]
, l'interpréteur Python a tenté d'obtenir l'appel Date.getattr() pour obtenir les champs d'un objet Date correspondant à la tranche 10:12
. Sans cette méthode, le découpage n'a aucune signification pour un objet Date.
Mais tout n'est pas perdu! Vous pouvez toujours obtenir des informations de temps de l'objet Date
:
Call .tuple() to split a date into its year, month, day, hour, minute, and second.
Vous pouvez alors couper ce tuple que nécessaire pour obtenir l'heure:
hour = r1.tuple()[3]
Ou exhaustive:
year, month, day, hour, minute, second = r1.tuple()
quand vous l'imprimez, il est converti en une chaîne, comme 'str (r1)', voulez-vous en prendre une partie? C'EST À DIRE. 'str (r1) [10:12]' –
où est l'instruction d'affectation pour 'home'? – wpercy
Désolé, 'home' est mon lat/long def – Geo