Seite 2 von 2
Re: Zwei SQlite Datenbanken verknüpfen
Verfasst: Mittwoch 4. November 2015, 21:50
von __deets__
Peter Pan hat geschrieben:Ich kann leider kein MySQL aufm Raspberry laufen lassen. Warum wisst ihr ja bestimmt. Das ist ja überhaupt auch das Problem was ich habe. Mit MySQl ist das easy. Nur die läuft ja permanent, das wäre eine zu große Resourcenverschwendung.
Naja trotzdem danke für die Tipps.
Eine Datenbank die nichts tut, verschwendet auch nichts. Das Betriebsystem bedient konkrete Resourcenanforderungen - ein vor sich hin duempelnder Prozess tut genau nix.
Und auf meinem Mac kann schon mal der Luefter loslegen, wenn Spotlight (die eingebaute Volltextsuchmaschine, basierend auf SQLite) einen Rappel bekommt & alles neu indizieren will.
Das ist also ganz sicher kein Argument dagegen. Vor allem nicht, wenn man eh schon damit kaempft, das irgendwie hinzubekommen - wenn es dir dann auch noch um Gedeih und Verderben um Resourcensparsamkeit geht, dann ist ein Raspberry PI als Aussenstelle schon eine Verschwendung vorm $HERRN - da reicht ein Arduino voellig.
Re: Zwei SQlite Datenbanken verknüpfen
Verfasst: Mittwoch 11. November 2015, 14:38
von Peter Pan
Kann mir vielleicht jemand sagen, warum ich nur jeden zweiten Wert als Ausgabe in .txt bekomme?
Finde im internet relativ wenig zu sqlite3 und python csv Export.
import sqlite3
import csv
con = None
con = sqlite3.connect ('TestDB')
cur = con.cursor ()
c=cur.execute("SELECT * FROM TB_Tabelle _1")
with open('/Desktop/Export.txt', w) as file:
for in in c:
a = c.fetchone()
csv.writer(file).writerow(a)
Re: Zwei SQlite Datenbanken verknüpfen
Verfasst: Mittwoch 11. November 2015, 14:51
von Sirius3
@Peter Pan: Du benutzt "c" sowohl als Iterator, als auch c.fetchone explizit.
Re: Zwei SQlite Datenbanken verknüpfen
Verfasst: Mittwoch 11. November 2015, 14:54
von noisefloor
Hallo,
weil dein Code sehr seltsam ist
Finde im internet relativ wenig zu sqlite3 und python csv Export.
Nach der Kombi suchen ist auch wenig erfolgversprechend - das eine hat mit dem anderen ja nichts zu tun.
Dein grundsätzlicher Ansatz ist aber schon korrekt:
1. SQL Querry absetzen
2. über den Cursor iterieren - in jeder Iteration erhältst du eine Zeile des Ergebnisses als Tuple
3. die Daten aus dem Tupel in die CSV-Datei schreiben.
Einfacher wäre aber: iterdump (
Link)
Und ohne wenn und aber BESSER wäre eine Relationale DB mit Master-Slvae Replikation - siehe oben. Damit wäre dein Problem gelöst.
Gruß, noisefloor
Re: Zwei SQlite Datenbanken verknüpfen
Verfasst: Mittwoch 11. November 2015, 14:55
von BlackJack
@Peter Pan: Das hat weder etwas mit `sqlite3` noch mit `csv` zu tun sondern mit der Schleife und dem was Du in der Schleife machst. An `a` wird nur jeder zweite Datensatz gebunden weil die anderen ja schon an die Schleifenvariable gebunden werden. An der Stelle zeigst Du übrigens keinen echten Quelltext, denn ``in`` als Name geht nicht weil das ein reserviertes Schlüsselwort ist.
Was `Cursor.execute()` als Rückgabwert liefert ist nicht spezifiziert, das ist also Zufall dass das so funktioniert. Dein `c` sollte nicht existieren.