SQL-argumenten du skickar till execute
måste finnas i en tupel eller lista, även om det bara finns en av dem. Detta anges i dokumentationen:
För bindning av positionsvariabler måste det andra argumentet alltid vara assekvens, även om det innehåller en enda variabel. Och kom ihåg att Python kräver ett kommatecken för att skapa ett enda element:
Så du måste göra så här:
ip ="127.0.0.1"
sql="select count(*) from radacct where nasipaddress=%s"
cur.execute(sql, (ip,))