Die SQL-Argumente übergeben Sie an execute
muss in einem Tupel oder einer Liste enthalten sein, auch wenn es nur eines davon gibt. Dies ist in der Dokumentation vermerkt:
Bei der Bindung von Positionsvariablen muss das zweite Argument immer eine Sequenz sein, auch wenn es eine einzelne Variable enthält. Und denken Sie daran, dass Python ein Komma benötigt, um ein Tupel mit einem einzelnen Element zu erstellen:
Sie müssen es also so machen:
ip ="127.0.0.1"
sql="select count(*) from radacct where nasipaddress=%s"
cur.execute(sql, (ip,))