Rzeczywisty błąd jest spowodowany przez nie używając symboli zastępczych, tak jak powinieneś .
Poza tym naprawdę nie chcesz ponownie łączyć się z bazą danych w ten sposób dla każdego elementu. Ponadto możesz zatwierdzać tylko wtedy, gdy wszystko jest gotowe:
connection = mysql.connector.connect(
host="localhost", user="root", passwd="admin", database="python"
)
cursor = connection.cursor()
for child in root:
for element in child:
for subelement in element:
a = subelement.attrib["currency"]
b = subelement.text
result = cursor.execute(
"INSERT INTO valoare (moneda, flux) VALUES (%s, %s)", (a, b)
)
connection.commit()