
On 14.01.2023 20:09, Stefan Ram wrote:
Jan Schmidt <jan.schmidt@gmx.de> writes:
print("Result: %s" % params.get_result()) erzeugt Result: {'abc': 21.1, 'def': 21.400000000000002} Ich (perl) würde das als Hash bezeichnen. Wie kann ich die einzelnen Werte durchiterieren und z.B. so ausgeben?
Streuspeicherung ("hash") ist eine Implementationstechnik. Die Schnittstelle wird eher mit "Wörterbuch" ("dictionary", "dict") bezeichnet.
for i in params.get_result().keys: print("key: %s, value %s" %(i, params.get_result()[i]))
Hast Du Deine Frage jetzt damit selber beantwortet?
hab ich? das war geraten... Testen kann ich das grad nicht, weil das Gerät, welches die Daten liefert, gerade offline ist (PV-Wechselrichter).
params = ParameterParser(parameter_definition) Dort gibts def get_result(self): return self.result gefüllt wird result so if self.is_integer_num (value): self.result[title] = int(value) else: self.result[title] = value
Ich weiß nicht, ob es dazu jetzt eine Frage gibt, und, wenn ja, welche.
nein, keine Frage dazu. Das ist die Erklärung, wie die Werte dort hineinkommen. Python ist syntaktisch eben doch etwas anders als perl / C. Jan

On 2023-01-14 19:31, Jan Schmidt <jan.schmidt@gmx.de> wrote:
On 14.01.2023 20:09, Stefan Ram wrote:
Jan Schmidt <jan.schmidt@gmx.de> writes:
print("Result: %s" % params.get_result()) erzeugt Result: {'abc': 21.1, 'def': 21.400000000000002} Ich (perl) würde das als Hash bezeichnen. Wie kann ich die einzelnen Werte durchiterieren und z.B. so ausgeben?
Streuspeicherung ("hash") ist eine Implementationstechnik. Die Schnittstelle wird eher mit "Wörterbuch" ("dictionary", "dict") bezeichnet.
Konkret heißt der Typ in Python "dict". Und ja, in Perl heißt er wirklich "hash". Das kann man für eine unzulässige sprachliche Vermischung von Funktion und Implementation halten, ist aber so.
for i in params.get_result().keys: print("key: %s, value %s" %(i, params.get_result()[i]))
Hast Du Deine Frage jetzt damit selber beantwortet?
hab ich? das war geraten...
Die Richtung stimmt. Aber ganz korrekt ist es noch nicht. Siehe https://docs.python.org/3/library/stdtypes.html#mapping-types-dict
Testen kann ich das grad nicht, weil das Gerät, welches die Daten liefert, gerade offline ist (PV-Wechselrichter).
Um sich mit Python-Standardtypen vertraut zu machen, braucht man keinen Wechselrichter. Ein Python-Interpreter reicht. Insbesondere die REPL (einfach python3 ohne Parameter aufrufen) ist sehr praktisch, um sich herumzuspielen. hp
participants (2)
-
Jan Schmidt
-
Peter J. Holzer