Hallo in die Runde!
Vorab, ich bin ein blutiger Python-Anfänger mit sehr, sehr wenig Erfahrung auf dem Gebiet.
Und nun zu meinem Problem:
Ich soll eine Datenbankabfrage machen und diese abgefragten 10-Minuten-Werte dann fortlaufend in eine Datei schreiben (Tabelle), welche am Ende des Tages als eine Date gesehen wird. Neuer Tag - neue Datei.
Die Verbindung zur Oracle Datenbank konnte ich herstellen und die Daten kann ich auch abfragen. Wie lege ich diese Daten denn nun in Tabellenform in eine Datei?
Hier ein Beispiel:
2019 06 11 00 00 00 59.8 965.6 11.5
2019 06 11 00 10 00 58.7 965.4 11.7
2019 06 11 00 20 00 60.3 965.3 11.8
2019 06 11 00 30 00 64.4 965.3 11.6
2019 06 11 00 40 00 66.0 965.2 11.4
2019 06 11 00 50 00 68.5 964.8 11.2
2019 06 11 01 00 00 67.1 964.8 11.5
2019 06 11 01 10 00 60.0 964.5 12.2
2019 06 11 01 20 00 60.5 964.4 13.2
2019 06 11 01 30 00 54.3 964.2 13.4
Kann mir da jemand helfen? Ich habe echt überhaupt gar keine Ahnung.
Lieben Dank!
Datenbankabfrage und Weiterverarbeitung der Daten
Am besten das Tutorial aus der Pyhton Dokumentation durcharbeiten.
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@KleinErna: Was ist denn mit „Tabelle“ gemeint? Ist eventuell das `csv`-Modul aus der Standardbibliothek etwas brauchbares?
Die Zeitstempel sehen auch komisch aus. Das sollte ja eigentlich *ein* Wert sein, den würde ich ja lesbarer formatieren und am besten auch in einem Standardformat, also beispielsweise "2019-06-11T00:00:00".
Die Zeitstempel sehen auch komisch aus. Das sollte ja eigentlich *ein* Wert sein, den würde ich ja lesbarer formatieren und am besten auch in einem Standardformat, also beispielsweise "2019-06-11T00:00:00".
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Hallo __blackjack__ ,__blackjack__ hat geschrieben: Donnerstag 24. Oktober 2019, 10:47 @KleinErna: Was ist denn mit „Tabelle“ gemeint? Ist eventuell das `csv`-Modul aus der Standardbibliothek etwas brauchbares?
Die Zeitstempel sehen auch komisch aus. Das sollte ja eigentlich *ein* Wert sein, den würde ich ja lesbarer formatieren und am besten auch in einem Standardformat, also beispielsweise "2019-06-11T00:00:00".
nein, nein meine Daten frage ich wie folgt ab:
Code: Alles auswählen
if __name__ == "__main__":
t_query10 = ruf_query10("2019-10-07 00:00:00", "2019-10-08 00:00:00")
print(t_query10)
0: ['2019-10-07 00:10:00', '1019.4', '-0.5', '87.5'], 1: ['2019-10-07 00:20:00', '1019.4', '-0.2', '87.7'], 2: ['2019-10-07 00:30:00', '1019.4', '0.0', '86.1'], 3: ['2019-10-07 00:40:00', '1019.5', '0.0', '85.3'], 4: ['2019-10-07 00:50:00', '1019.5', '0.2', '85.3'], 5: ['2019-10-07 01:00:00', '1019.5', '-0.2', '86.8'], 6: ['2019-10-07 01:10:00', '1019.5', '0.0', '87.0'], 7: ['2019-10-07 01:20:00', '1019.7', '-0.2', '85.4'], 8: ['2019-10-07 01:30:00', '1019.7', '0.0', '86.6'], 9: ['2019-10-07 01:40:00', '1019.7', '-0.1', '85.7'], 10: ['2019-10-07 01:50:00', '1019.7', '0.0', '85.5'], 11: ['2019-10-07 02:00:00', '1019.8', '-0.2', '86.1'],
Ich hätte gern jeden 10-Minuten-Wert untereinander.
Da ich es auch gern in einer Textdatei festhalten möchte, habe ich noch folgende Ergänzung vorgenommen:
Code: Alles auswählen
if __name__ == "__main__":
t_query10 = ruf_query10("2019-10-07 00:00:00", "2019-10-08 00:00:00")
#print(t_query10)
f = open("testfile01.txt", "w+")
f.write(t_amda10)
f.close()
Was mache ich falsch?TypeError: write() argument must be str, not tuple
Viele Grüße
Anne
Woher kommt denn `ruf_query10`? Der Funktionsname ist nicht gut, um zu verstehen, was da passieren soll. Warum liefert diese Funktion ein Wörterbuch mit trivialen Schlüsseln zurück?
`t_query10` ist genauso nichtssagend. Präfixe wie `t_` sind generell überflüssig, da sie nichts zum Verständnis beitragen. Später nennst Du das dann `t_amda10`, wo jemand dann die Abkürzunge amda raten müßte. Nenne Variablen so, das sie keine Abkürzungen enthalten.
"w+" ist für Text-Dateien garantiert der falsche Modus. Entweder "a" für anhängen oder "w" für neu schreiben.
Dateien die man öffnet, muß man auch wieder schließen, am besten mit dem with-Statement.
Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht 2.
Die Fehlermeldung behauptet, dass Du versuchst Tuple zu schreiben, ich sehe aber weit und breit keine Tuple. Poste den wirklichen Code und den gesamten Traceback, sonst müssen wir hier raten, was passiert, und das klappt nicht immer.
Zum Problem: Du willst tabellarische Daten in eine Datei schreiben. Dann nimm das csv-Modul, das ist dafür gedacht.
`t_query10` ist genauso nichtssagend. Präfixe wie `t_` sind generell überflüssig, da sie nichts zum Verständnis beitragen. Später nennst Du das dann `t_amda10`, wo jemand dann die Abkürzunge amda raten müßte. Nenne Variablen so, das sie keine Abkürzungen enthalten.
"w+" ist für Text-Dateien garantiert der falsche Modus. Entweder "a" für anhängen oder "w" für neu schreiben.
Dateien die man öffnet, muß man auch wieder schließen, am besten mit dem with-Statement.
Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht 2.
Die Fehlermeldung behauptet, dass Du versuchst Tuple zu schreiben, ich sehe aber weit und breit keine Tuple. Poste den wirklichen Code und den gesamten Traceback, sonst müssen wir hier raten, was passiert, und das klappt nicht immer.
Zum Problem: Du willst tabellarische Daten in eine Datei schreiben. Dann nimm das csv-Modul, das ist dafür gedacht.