google_sheet_handler.py aktualisiert
This commit is contained in:
@@ -5,14 +5,13 @@ import logging
|
|||||||
import gspread
|
import gspread
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from oauth2client.service_account import ServiceAccountCredentials
|
from oauth2client.service_account import ServiceAccountCredentials
|
||||||
# KORRIGIERTER IMPORT
|
|
||||||
from config import Config, COLUMN_MAP, CREDENTIALS_FILE
|
from config import Config, COLUMN_MAP, CREDENTIALS_FILE
|
||||||
from helpers import retry_on_failure, _get_col_letter
|
from helpers import retry_on_failure, _get_col_letter
|
||||||
|
|
||||||
class GoogleSheetHandler:
|
class GoogleSheetHandler:
|
||||||
"""
|
"""
|
||||||
Kapselt alle Interaktionen mit dem Google Sheet.
|
Kapselt alle Interaktionen mit dem Google Sheet.
|
||||||
Finale, robuste Version v2.1.1
|
Finale, robuste Version v2.1.2
|
||||||
"""
|
"""
|
||||||
def __init__(self, sheet_url=None):
|
def __init__(self, sheet_url=None):
|
||||||
self.logger = logging.getLogger(__name__ + ".GoogleSheetHandler")
|
self.logger = logging.getLogger(__name__ + ".GoogleSheetHandler")
|
||||||
@@ -32,7 +31,6 @@ class GoogleSheetHandler:
|
|||||||
try:
|
try:
|
||||||
if not os.path.exists(CREDENTIALS_FILE):
|
if not os.path.exists(CREDENTIALS_FILE):
|
||||||
raise FileNotFoundError(f"Credential-Datei nicht gefunden: {CREDENTIALS_FILE}")
|
raise FileNotFoundError(f"Credential-Datei nicht gefunden: {CREDENTIALS_FILE}")
|
||||||
# KORRIGIERTER ZUGRIFF
|
|
||||||
creds = ServiceAccountCredentials.from_json_keyfile_name(CREDENTIALS_FILE, ["https://www.googleapis.com/auth/spreadsheets"])
|
creds = ServiceAccountCredentials.from_json_keyfile_name(CREDENTIALS_FILE, ["https://www.googleapis.com/auth/spreadsheets"])
|
||||||
self.client = gspread.authorize(creds)
|
self.client = gspread.authorize(creds)
|
||||||
spreadsheet = self.client.open_by_url(self.sheet_url)
|
spreadsheet = self.client.open_by_url(self.sheet_url)
|
||||||
@@ -44,8 +42,6 @@ class GoogleSheetHandler:
|
|||||||
self.client = None
|
self.client = None
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# ... (Der Rest der Methoden bleibt exakt gleich wie in meiner letzten Nachricht)
|
|
||||||
|
|
||||||
@retry_on_failure
|
@retry_on_failure
|
||||||
def load_data(self):
|
def load_data(self):
|
||||||
if not self.client and not self._connect(): return False
|
if not self.client and not self._connect(): return False
|
||||||
@@ -69,7 +65,8 @@ class GoogleSheetHandler:
|
|||||||
try:
|
try:
|
||||||
if not self.client and not self._connect(): return None
|
if not self.client and not self._connect(): return None
|
||||||
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
|
worksheet = self.client.open_by_url(self.sheet_url).worksheet(sheet_name)
|
||||||
data = worksheet.get_all_records(empty_value_render_option='EMPTY_STRING')
|
# KORRIGIERTE ZEILE
|
||||||
|
data = worksheet.get_all_records()
|
||||||
df = pd.DataFrame(data)
|
df = pd.DataFrame(data)
|
||||||
self.logger.info(f"{len(df)} Zeilen aus '{sheet_name}' als DataFrame geladen.")
|
self.logger.info(f"{len(df)} Zeilen aus '{sheet_name}' als DataFrame geladen.")
|
||||||
return df
|
return df
|
||||||
|
|||||||
Reference in New Issue
Block a user