python - "Literally"将字符串转换为字节数组

标签 python python-3.x

我有一个小型服务器,使用 python 中的套接字发送原始数据,该套接字仅接受字节数组作为输入。在这个字节数组中,我必须包含 mac 地址。这些 mac 地址来自 json 文件,作为字符串导入。 例如“00 11 22 33 44 55”(实际上没有空格)

我正在寻找一种将此字符串编码为字节数组的简单方法。所以第一个字节应该是 00,第二个字节是 11,依此类推。

我发现的所有“解决方案”都会将任何字符串编码为字节数组,但这不是我想要的,因为它会进一步分割我的mac地址,因为它们会编码例如0,然后0,然后是 1,然后是 1,依此类推,这样我的 6 字节 MAC 地址就变成了 12 字节编码的字节数组。

是否有我可以使用的内置函数,或者我是否必须创建自己的函数才能执行此操作?

<小时/>

解决方案: 感谢大家和 Arnial 提供了最简单的答案。 问题是,所有这些答案我都或多或少地尝试过,但之前没有效果 但是 我的问题不是这些方法的返回类型的类型(我的套接字总是拒绝发送),它实际上是我尝试发送的消息的长度。 套接字拒绝发送短于 12 字节的消息(源/目标 mac 地址),但我只尝试过使用此处介绍的方法之一转换此示例 mac 地址的短消息。

非常感谢大家的帮助!

最佳答案

您的转化并不像您想象的那么字面意思。

字符串“00112233445566”的长度为 12 个字符,这就是它转换为 12 字节数组的原因。

你的mac看起来像十六进制编码的字节字符串,所以你可能可以使用这个:

bytes.fromhex( "001122334455" )

它将创建从零字节开始的字节序列,然后是 0x11 (17),然后是 0x22 (34) ...

关于python - "Literally"将字符串转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621499/

相关文章:

python - 在 Python 中比较字典键查找的性能如何?

python - Keras 预测在二元问题中只返回一个类

python - 如何通过python中的另一个函数调用带有命名参数的函数?

python - 如何删除列表组合列表中列表的特定元素?

python - 与 Python 类属性一起使用的文档字符串?

python - 希望加快循环,包括 Pandas 操作

python - 在导入的 .csv 中将字符串更改为 float

python - 如何在 Python 中实现类似于 Javascript 回调的功能

Python从命名管道获取数据

python - 为什么 `popen.stdout.readline`会死锁以及该怎么办?