UPDATE tabelle_1
JOIN (SELECT name,
RANK() OVER (ORDER BY punkte DESC) rank
FROM tabelle_1
) AS ranks ON ranks.name = tabelle_1.name
SET tabelle_1.rank = ranks.rank
Es ist nicht unüblich in Python ein ORM wie SQLAlchemy zu verwenden um mit Datenbanken zu arbeiten.
SQLAlchemy auch, wenn man rohes SQL mit der Datenbank sprechen möchte um die Connections zu managen.
Aber grundsätzlich bleibt es bei meiner Frage: Wenn du weißt, dass du genau diese Abfrage in der Form brauchst, warum sendest du sie dann nicht an die Datenbank?
Also was geht dabei schief?
mycursor.execute("UPDATE tabelle_1
JOIN (SELECT name,
RANK() OVER (ORDER BY punkte DESC) rank
FROM tabelle_1
) AS ranks ON ranks.name = tabelle_1.name
SET tabelle_1.rank = ranks.rank")
Mal ein Grundlagentutorial von Python durcharbeiten lohnt sich. Dann lernst du unter anderen, dass mit ''' oder """ mehrzeilige String literale erstellt werden können.