Python format - IndexError tuple index out of range

Python format - IndexError tuple index out of range

Ahoj,při skládání SQL dotazu přes python skript, kdy dosazuji proměnné pomocí .format() takto: sql = str("UPDATE `queue` SET status='1', resultRDX='{1}', resultBMX='{2}', finished='{3}' WHERE id='{4}'" .format(countLoops, checkVysledekIBMX, datumStart, idQ))

Dostávám chybu IndexError: tuple index out of range:

Traceback (most recent call last):  File "/var/python/python.py", line 281, in     superLoop()  File "/var/python/python.py", line 122, in superLoop    superLoop()  File "/var/python/python.py", line 248, in superLoop    moreRDX(checkPositiveRDXPositionElement)  File "/var/python/python.py", line 233, in moreRDX    readerRDX(vysledekBMX,countLoops)  File "/var/python/python.py", line 210, in readerRDX    sql = str("UPDATE `queue` SET status='1', resultRDX='{1}', resultBMX='{2}', finished='{3}' WHERE id='{4}'" .format(countLoops, checkVysledekBMX, datumStart, idQ))IndexError: tuple index out of range

ODPOVĚĎ

Ahoj,

obecně lze říci, že chyba "IndexError tuple index out of range" znamená, že máš problém s indexem - někde na něj zkrátka odkazuješ špatně (nejčastěji, že daný index neexistuje), což se v tomto případě potvrdilo:

Celý problém je v tom, že nezačínáš format od nuly, ale od jedničky a index 4 tedy neexistuje, takže správně takto:

sql = str("UPDATE `queue` SET status='1', resultRDX='{0}', resultBMX='{1}', finished='{2}' WHERE id='{3}'" .format(countLoops, checkVysledekIBMX, datumStart, idQ))

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář