Daten aus zip selektieren
Verfasst: Montag 30. Oktober 2023, 15:33
Hallo,
habe wieder ein kleines Problem wobei ich etwas Hilfe von Euch benötige.
Ich habe Daten welche in einem zip liegen.
Mit list(zip(result.registers, registers)) erhalte ich alle Daten angezeigt.
Möchte nun den 18. Datensatz daraus lesen. Geht das so einfach?
Mit dict(zip(result.registers, registers)) erhalte ich die Daten so angezeigt.
Ist es möglich gezielt Daten aus dem Datensatz heraus zu ziehen?
Ich behelfe mich aktuell über diesen Weg und ordne Daten für die weiter Bearbeitung zu.
Ist das eventuell der bessere Weg? Benötige dann eventuell mehrere Variablen. Funktioniert aber bereits im Skript.
Was ist der schnellste, optimalste Rechenweg für den Ablauf im Skript?
Gruß Ralf
habe wieder ein kleines Problem wobei ich etwas Hilfe von Euch benötige.
Ich habe Daten welche in einem zip liegen.
Mit list(zip(result.registers, registers)) erhalte ich alle Daten angezeigt.
Möchte nun den 18. Datensatz daraus lesen. Geht das so einfach?
Mit dict(zip(result.registers, registers)) erhalte ich die Daten so angezeigt.
Code: Alles auswählen
{12: ['Status', 1], 2802: ['Vpv1', 0.1], 0: ['ParaChgCurr', 0.1], 1430: ['Ppv1L', 0.1], 27: ['BatterySOC', 1], 16400: ['AC_dischrwattL', 0.1], 16760: ['AC_dischrvaL', 0.1], 5123: ['Bat_Volt', 0.01], 4047: ['BusVolt', 0.01], 2300: ['OutputVolt', 0.1], 5000: ['OutputFreq', 0.01], 254: ['InvTemp', 0.1], 220: ['DCDCTemp', 0.1], 335: ['LoadPercent', 0.1], 211: ['Buck1Temp', 0.1], 253: ['Buck2Temp', 0.1], 72: ['OP_Curr', 0.1], 77: ['Inv_Curr', 0.1], 20105: ['DTC', 1], 2482: ['CheckStep', 1], 86: ['Epv1_todayL', 0.1], 20381: ['Epv1_totalL', 0.1], 1015: ['Eac_chrtotalL', 0.1], 24: ['Ebat_chrtodayL', 0.1], 13173: ['Ebat_chrtotalL', 0.1], 1224: ['Eac_dischrtotalL', 0.1], 16180: ['Bat_wattL', 0.1], 55: ['Invfanspeed', 1], 316: ['-84-', 0], 67: ['Eop_dischrToday_L', 1], 69: ['Eop_dischrTotal_L', 1]}
{12: ['Status', 1], 2787: ['Vpv1', 0.1], 0: ['ParaChgCurr', 0.1], 1500: ['Ppv1L', 0.1], 29: ['Buck1Curr', 0.1], 16400: ['AC_dischrwattL', 0.1], 16760: ['OP_VAL', 0.1], 5123: ['Bat_Volt', 0.01], 27: ['BatterySOC', 1], 4048: ['BusVolt', 0.01], 2300: ['OutputVolt', 0.1], 5000: ['OutputFreq', 0.01], 254: ['InvTemp', 0.1], 220: ['DCDCTemp', 0.1], 335: ['LoadPercent', 0.1], 211: ['Buck1Temp', 0.1], 253: ['Buck2Temp', 0.1], 72: ['OP_Curr', 0.1], 77: ['Inv_Curr', 0.1], 20105: ['DTC', 1], 2482: ['CheckStep', 1], 86: ['Epv1_todayL', 0.1], 20381: ['Epv1_totalL', 0.1], 1015: ['Eac_chrtotalL', 0.1], 24: ['Ebat_chrtodayL', 0.1], 13173: ['Ebat_chrtotalL', 0.1], 1224: ['Eac_dischrtotalL', 0.1], 16750: ['AC_dischrvaL', 0.1], 16180: ['Bat_wattL', 0.1], 55: ['Invfanspeed', 1], 316: ['-84-', 0], 67: ['Eop_dischrToday_L', 1], 69: ['Eop_dischrTotal_L', 1]}
Ich behelfe mich aktuell über diesen Weg und ordne Daten für die weiter Bearbeitung zu.
Code: Alles auswählen
if not result.isError():
for value, (name, multiplier) in zip(result.registers, registers):
if name == "BatterySOC":
BatterySOC = value * multiplier
elif name == "LoadPercent":
LoadPercent = value * multiplier
Was ist der schnellste, optimalste Rechenweg für den Ablauf im Skript?
Gruß Ralf