String durchsuchen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da hat sich nichts geaendert. Falsch programmiert ist das alles auch schon mit Python2 gewesen.

Es gibt nun mal in Hochsprachen Datenstrukturen, und ohne die kommt man da nicht aus. Du wirst nicht drum rumkommen, dir das drauf zu schaffen.
Benutzeravatar
spicer
User
Beiträge: 52
Registriert: Freitag 5. März 2021, 23:40
Kontaktdaten:

Ok.
data = loc.sun(date.today()).items()
gibt aus:
dict_items([('noon', datetime.datetime(2021, 3, 8, 12, 40, 56, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>)), ('dawn', datetime.datetime(2021, 3, 8, 6, 24, 33, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>)), ('sunrise', datetime.datetime(2021, 3, 8, 6, 54, 53, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>)), ('sunset', datetime.datetime(2021, 3, 8, 18, 26, 59, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>)), ('dusk', datetime.datetime(2021, 3, 8, 18, 57, 19, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>))])

sun1 = data["sunset"]
gibt diesen Fehler:

Traceback (most recent call last):
File "./test.py", line 31, in <module>
sun1 = data["sunset"]
TypeError: 'dict_items' object is not subscriptable

Laut https://www.python-kurs.eu/dictionaries.php müssten die Daten mit : getrennt sein. Liegt das an dem?

Edit:
Mit
data = loc.sun(date.today())
bekomme ich folgenden Output ^^

2021-03-08 18:26:59+01:00

Das ist ja schonmal etwas :)
Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
(Murphys Gesetz)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Items gibt dir die Sequenz der Einträge im Wörterbuch. Dafür gibt es Anwendungen (sonst wäre das nicht da), aber es ist ein unnötiger und falscher Schritt hier.

data = loc.sun(date.today())

ist alles, was du brauchst. Dann geht auch

sun1 = data["sunset"]

sun1 ist übrigens ein schlechter Name. Warum geht die Sonne um 1 unter? Warum heißt das nicht sunset? Der Name drängt sich doch förmlich auf.
Benutzeravatar
spicer
User
Beiträge: 52
Registriert: Freitag 5. März 2021, 23:40
Kontaktdaten:

Werde das noch umbenennen. War nur zum testen ^^
data = loc.sun(date.today()) hatte ich dann noch editiert.
Es läuft nun.
Danke Euch allen für die Unterstützung.
Hinweise wie Dictionary haben mich auf die Lösung gebracht.
Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
(Murphys Gesetz)
Antworten