Array dynamisch erstellen und in Tuple packen
Verfasst: Mittwoch 22. Mai 2024, 20:09
Hallo,
ich möchte ein Arry "wert[x]" dynamisch erstellen, erweitern und in ein Tuple packen.
Hoffe ich liege jetzt richtig mit der Bezeichnung Array. In PHP ist es ja eins
Über den Sinn, lässt sich streiten. Hatten wir ja schon mal. Ich möchte aber etwas lernen.
Gebrauchen kann man es ja immer.
Ich benutze wieder growatt_registers[] und möchte mir das viele schreiben im statement ersparen.
Das statement funktioniert und ich kann so in einem anderen Script meine Tabelle erstellen.
Wie lang die jetzt ist, interessiert erst einmal nicht. mir geht es ums lernen und verstehen, lösen einer Aufgabe.
data sollte in data() sein.
Mit tuple erhalte ich eins, es schaut aber etwas seltsam aus.
Fehlermeldung:
Wo liegt mein Fehler? Danke
ich möchte ein Arry "wert[x]" dynamisch erstellen, erweitern und in ein Tuple packen.
Hoffe ich liege jetzt richtig mit der Bezeichnung Array. In PHP ist es ja eins

Über den Sinn, lässt sich streiten. Hatten wir ja schon mal. Ich möchte aber etwas lernen.
Gebrauchen kann man es ja immer.
Ich benutze wieder growatt_registers[] und möchte mir das viele schreiben im statement ersparen.
Das statement funktioniert und ich kann so in einem anderen Script meine Tabelle erstellen.
Wie lang die jetzt ist, interessiert erst einmal nicht. mir geht es ums lernen und verstehen, lösen einer Aufgabe.
data sollte in data() sein.
Mit tuple erhalte ich eins, es schaut aber etwas seltsam aus.
Ausschauen sollte es ja so....'register[89]', 'register[90]')
..., register[89], register[90])
Code: Alles auswählen
growatt_registers = [
[0, "Status", 1],
[1, "Vpv1", 0.1],
....
[88, "Eop_dischrTotal_L", 1],
[89, "leer89", 0],
["90", "ParaChgCurr", 0.1] # 90
]
register_name = []
register_id = []
register_factor = []
data = ("")
platz = ['%s'] * len(growatt_registers)
platz = ", ".join(platz)
for i in range(0, len(growatt_registers)):
register_id.append("register[" + str(growatt_registers[i][0]) + "]")
register_name.append(growatt_registers[i][1])
register_factor.append(growatt_registers[i][2])
print(tuple(register_id))
register_name_lower = ", ".join(register_name)
register_name_lower = register_name_lower.lower()
cursor = connection.cursor()
statement = "INSERT INTO master(" + register_name_lower + " ) VALUES (" + platz + " )"
data = tuple(register_id)
cursor.execute(statement, data)
connection.commit()
Ich verstehe das jetzt so, 'register[0]' gibt es in der Tabelle nicht. Es gibt nur ein register[0]OperationalError: Incorrect integer value: 'register[0]' for column `solaranlage`.`master`.`status` at row 1
Wo liegt mein Fehler? Danke
