Argumenty sql, które przekazujesz do execute
musi znajdować się w krotce lub liście, nawet jeśli jest tylko jedna z nich. Jest to odnotowane w dokumentacji:
W przypadku wiązania zmiennych pozycyjnych drugi argument musi zawsze być kolejnością, nawet jeśli zawiera pojedynczą zmienną. I pamiętaj, że Python wymaga przecinka, aby utworzyć krotkę pojedynczego elementu:
Musisz to zrobić w ten sposób:
ip ="127.0.0.1"
sql="select count(*) from radacct where nasipaddress=%s"
cur.execute(sql, (ip,))