duplicate_checker.py aktualisiert
This commit is contained in:
@@ -414,35 +414,39 @@ def main(job_id=None):
|
||||
results.append({'Match':'', 'Score': best_score, 'Match_Grund': f"{best_comp} | {reason} TH={applied_threshold}"})
|
||||
logger.info(f" --> Kein Match (Score={best_score}) {best_comp} | {reason} TH={applied_threshold}")
|
||||
|
||||
# Ergebnisse zurückschreiben
|
||||
update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Sheet...")
|
||||
logger.info("Schreibe Ergebnisse ins Sheet (SAFE in-place, keine Spaltenverluste)…")
|
||||
res_df = pd.DataFrame(results, index=match_df.index)
|
||||
write_df = match_df.copy()
|
||||
write_df['Match'] = res_df['Match']
|
||||
write_df['Score'] = res_df['Score']
|
||||
write_df['Match_Grund'] = res_df['Match_Grund']
|
||||
# --- Ergebnisse zurückschreiben ---
|
||||
logger.info("Matching-Prozess abgeschlossen. Bereite Ergebnisse für den Upload vor...")
|
||||
update_status(job_id, "Läuft", "Schreibe Ergebnisse zurück ins Google Sheet...")
|
||||
|
||||
drop_cols = ['normalized_name','normalized_domain','block_key','Effektive Website','domain_use_flag']
|
||||
for c in drop_cols:
|
||||
if c in write_df.columns:
|
||||
write_df.drop(columns=[c], inplace=True)
|
||||
result_df = pd.DataFrame(results)
|
||||
|
||||
# Füge die Ergebnisse zu den Originaldaten hinzu
|
||||
# original_matching_df ist die saubere Kopie von Anfang an
|
||||
output_df = pd.concat([original_matching_df.reset_index(drop=True), result_df], axis=1)
|
||||
|
||||
# Backup-Logik
|
||||
now = datetime.now().strftime("%Y-%m-%d_%H-%M")
|
||||
backup_path = os.path.join(Config.LOG_DIR, f"{now}_backup_{MATCHING_SHEET_NAME}.csv")
|
||||
try:
|
||||
write_df.to_csv(backup_path, index=False, encoding='utf-8')
|
||||
logger.info(f"Lokales Backup geschrieben: {backup_path}")
|
||||
# Stelle sicher, dass das Log-Verzeichnis existiert
|
||||
os.makedirs(Config.LOG_DIR, exist_ok=True)
|
||||
output_df.to_csv(backup_path, index=False, encoding='utf-8-sig', sep=';')
|
||||
logger.info(f"Lokales Backup der Ergebnisse wurde in '{backup_path}' geschrieben.")
|
||||
except Exception as e:
|
||||
logger.warning(f"Backup fehlgeschlagen: {e}")
|
||||
logger.warning(f"Backup der Ergebnisse konnte nicht geschrieben werden: {e}")
|
||||
|
||||
data = [write_df.columns.tolist()] + write_df.fillna('').values.tolist()
|
||||
ok = sheet.clear_and_write_data(MATCHING_SHEET_NAME, data)
|
||||
# Konvertiere in Liste von Listen für den Upload
|
||||
data_to_write = [output_df.columns.tolist()] + output_df.fillna('').values.tolist()
|
||||
|
||||
logger.info(f"Versuche, {len(data_to_write) - 1} Ergebniszeilen in das Sheet '{MATCHING_SHEET_NAME}' zu schreiben...")
|
||||
|
||||
ok = sheet.clear_and_write_data(MATCHING_SHEET_NAME, data_to_write)
|
||||
|
||||
if ok:
|
||||
logger.info("Ergebnisse erfolgreich geschrieben")
|
||||
logger.info("Ergebnisse erfolgreich in das Google Sheet geschrieben.")
|
||||
update_status(job_id, "Abgeschlossen", f"{total} Accounts erfolgreich geprüft.")
|
||||
else:
|
||||
logger.error("Fehler beim Schreiben ins Google Sheet")
|
||||
logger.error("Fehler beim Schreiben der Ergebnisse ins Google Sheet.")
|
||||
update_status(job_id, "Fehlgeschlagen", "Fehler beim Schreiben ins Google Sheet.")
|
||||
|
||||
# Summary
|
||||
|
||||
Reference in New Issue
Block a user