Ich habe einen kleinen Server, der Rohdaten mit einem Socket in Python sendet, das nur Bytearrays als Eingabe akzeptiert. In diesem Bytearray muss ich Mac-Adressen angeben. Diese MAC-Adressen stammen aus einer JSON-Datei, die als String importiert wird. z. B. "00 11 22 33 44 55" (eigentlich ohne die Leerzeichen)"Buchstäblich" einen String in ein Bytearray konvertieren
was ich suche, ist eine einfache Möglichkeit zum Codieren dieser Zeichenfolge in einem Bytearray. Also sollte das erste Byte 00, Sekunde 11 usw. sein.
Alle "Lösungen", die ich gefunden habe, werden jede Zeichenfolge in ein Byte-Array codieren, aber das ist nicht das, was ich will, weil es meine Mac-Adresse weiter aufteilt, weil sie zum Beispiel 0, dann 0 kodieren , dann 1, dann 1 und so weiter, so dass meine 6-Byte-MAC-Adresse ein 12-Byte-codiertes Byte-Array wird.
Gibt es eine eingebaute Funktion, die ich verwenden kann oder muss ich meine eigene Funktion erstellen, um dies zu tun?
LöSUNG: Thx an euch alle und Arnial für die einfachste Antwort zu geben. Die Sache ist, alle diese Antworten, die ich mehr oder weniger ohne Wirkung ausprobiert, bevor ABER Mein Problem war nicht der Typ des Rückgabetyp dieser Methoden (die meine Steckdose immer senden verweigert), war es eigentlich die Länge der Nachricht, die ich versuchte zu senden. Der Socket weigert sich, Nachrichten zu senden, die kürzer als 12 Bytes sind (Quell-/Ziel-MAC-Adressen), aber ich habe nur eine kurze Nachricht mit dieser Beispiel-MAC-Adresse mit einer der hier vorgestellten Methoden konvertiert.
Also vielen Dank für Ihre Hilfe!
werden Sie haben wahrscheinlich eine eigene Funktion zu erstellen. Sie müssen die Zeichenfolge in Zeichenpaaren durchlaufen und versuchen, dafür zu googeln. – jonrsharpe
Wow, Python kommt mit einer überraschend großen Anzahl von Funktionen, um kleinere Variationen dieser Aufgabe auszuführen. 'bytes.fromhex',' binascii.unhexlify' (und sein anderer Name, binascii.a2b_hex') und 'base64.b16decode' sind in den Antworten bisher aufgetaucht. Ich frage mich, ob es mehr gibt. – user2357112