List doppelte einträge addieren
Verfasst: Dienstag 24. November 2020, 00:24
Hallo zusammen,
schon vorab blutiger Anfänger. Ich zapfe meine GnuCash DB mit Python die Daten ab mit speichere diese in eine List ab
ein print ergibt jetzt folgendes raus:
Leider sind einige "Datensätze" doppelt wie hier grau markiert. Diese müssen aber zusammengerechnet werden und als ein Datensatz angezeigt werden. Und müsste so aussehen.
leider habe ich den ganzen Tag verbraucht diese Problem zu lösen. Ich habe aber einfach keinen Ansatz mehr wie ich dies angreifen sollte. Mein Plan wäre mit
die erste Zahle also ID heraus zu holen. Und dann mit die doppelten Datensätzen anzeigen lassen.
dann ein
ausgeben. Und die origdata mit templist addieren. Anschließed in der origdata ersetzen. und die templist löschen.
Wäre das ein Ansatz oder gibt es einen viel simpleren Code das wieder nur 5 Zeilen lang ist? Ich weiß es ist gerade 00:24 an einen Montag
schon vorab blutiger Anfänger. Ich zapfe meine GnuCash DB mit Python die Daten ab mit speichere diese in eine List ab
Code: Alles auswählen
umsaetze = sqlcursor.fetchall()
umsaetze = [list(row) for row in umsaetze]
Code: Alles auswählen
[datetime.datetime(2020, 11, 21, 13, 1, 32), datetime.datetime(2020, 11, 20, 10, 59), 'Geschenkgutschein', 2500, 100]
[datetime.datetime(2020, 11, 21, 13, 1, 2), datetime.datetime(2020, 11, 20, 10, 59), 'Lebensmittel', 828, 100]
[datetime.datetime(2020, 11, 21, 13, 0, 43), datetime.datetime(2020, 11, 20, 10, 59), 'Essen', 1739, 100]
[datetime.datetime(2020, 11, 21, 13, 0, 38), datetime.datetime(2020, 11, 20, 10, 59), 'Essen', 340, 100]
[datetime.datetime(2020, 11, 21, 13, 0, 27), datetime.datetime(2020, 11, 19, 10, 59), 'Bremsscheiben', 795, 100]
[datetime.datetime(2020, 11, 21, 13, 0, 3), datetime.datetime(2020, 11, 19, 10, 59), 'Aufw. Handelsware, Schnellverschluss für Fahrrad', 486, 100]
[datetime.datetime(2020, 11, 21, 12, 58, 47), datetime.datetime(2020, 11, 18, 10, 59), 'Essen', 1314, 100]
[datetime.datetime(2020, 11, 21, 12, 58, 29), datetime.datetime(2020, 11, 18, 10, 59), 'Essen', 240, 100]
[datetime.datetime(2020, 11, 21, 12, 58, 15), datetime.datetime(2020, 11, 18, 10, 59), 'von KK über P2 zu P1', 0, 100]
[datetime.datetime(2020, 11, 21, 12, 58, 15), datetime.datetime(2020, 11, 18, 10, 59), 'von KK über P2 zu P1', 48928, 100]
[datetime.datetime(2020, 11, 21, 12, 57, 33), datetime.datetime(2020, 11, 18, 10, 59), 'von KK über P1 zu P2', 49254, 100]
[datetime.datetime(2020, 11, 21, 12, 57, 33), datetime.datetime(2020, 11, 18, 10, 59), 'von KK über P1 zu P2', 0, 100]
[datetime.datetime(2020, 11, 21, 12, 56, 54), datetime.datetime(2020, 11, 17, 10, 59), 'Essen', 1415, 100]
[datetime.datetime(2020, 11, 21, 12, 56, 26), datetime.datetime(2020, 11, 17, 10, 59), 'Fahrrad Reperatur Laufrad Hinten', 5699, 100]
[datetime.datetime(2020, 11, 21, 12, 55, 47), datetime.datetime(2020, 11, 17, 10, 59), 'Fahrradabholung Fahrkarte', 500, 100]
[datetime.datetime(2020, 11, 21, 12, 55, 15), datetime.datetime(2020, 11, 16, 10, 59), 'Modelbahn Folieren der Kurve', 1155, 100]
[datetime.datetime(2020, 11, 21, 12, 54, 35), datetime.datetime(2020, 11, 16, 10, 59), 'Essen', 587, 100]
[datetime.datetime(2020, 11, 21, 12, 54, 26), datetime.datetime(2020, 11, 13, 10, 59), 'Essen', 874, 100]
[datetime.datetime(2020, 11, 21, 12, 54, 19), datetime.datetime(2020, 11, 12, 10, 59), 'Fahrrad Ersatzteile', 770, 100]
[datetime.datetime(2020, 11, 21, 12, 53, 52), datetime.datetime(2020, 11, 11, 10, 59), 'LED Leiste für Modelbahn', 3624, 100]
[datetime.datetime(2020, 11, 21, 12, 53, 29), datetime.datetime(2020, 11, 11, 10, 59), 'Essen', 315, 100]
[datetime.datetime(2020, 11, 21, 12, 53, 23), datetime.datetime(2020, 11, 11, 10, 59), 'Fahrrad Reperatur teile', 990, 100]
[datetime.datetime(2020, 11, 11, 18, 43, 12), datetime.datetime(2020, 11, 10, 10, 59), 'Essen', 658, 100]
############################
[datetime.datetime(2020, 11, 11, 18, 41, 56), datetime.datetime(2020, 11, 10, 10, 59), 'Fahrrad und Essen', 979, 100]
[datetime.datetime(2020, 11, 11, 18, 41, 56), datetime.datetime(2020, 11, 10, 10, 59), 'Fahrrad und Essen', 1000, 100]
############################
[datetime.datetime(2020, 11, 11, 18, 41, 48), datetime.datetime(2020, 11, 9, 10, 59), 'Essen', 341, 100]
[datetime.datetime(2020, 11, 11, 18, 41, 39), datetime.datetime(2020, 11, 9, 10, 59), 'Audible', 995, 100]
[datetime.datetime(2020, 11, 11, 18, 41, 5), datetime.datetime(2020, 11, 9, 10, 59), 'Essen', 244, 100]
[datetime.datetime(2020, 11, 5, 8, 41, 47), datetime.datetime(2020, 11, 4, 10, 59), 'Essen', 689, 100]
[datetime.datetime(2020, 11, 5, 8, 41, 42), datetime.datetime(2020, 11, 4, 10, 59), 'Modelbahn Bretter', 829, 100]
Code: Alles auswählen
[datetime.datetime(2020, 11, 11, 18, 41, 56), datetime.datetime(2020, 11, 10, 10, 59), 'Fahrrad und Essen', 1979, 100]
Code: Alles auswählen
for nr, row in enumerate([i[0] for i in umsaetze]):
templist=[nr, row]
dann ein
Code: Alles auswählen
for row in umsaetze:
origdata = row
Wäre das ein Ansatz oder gibt es einen viel simpleren Code das wieder nur 5 Zeilen lang ist? Ich weiß es ist gerade 00:24 an einen Montag