【发布时间】:2016-07-27 19:21:57
【问题描述】:
我有一个小型服务器使用 python 中的套接字发送原始数据,它只接受字节数组作为输入。在这个字节数组中,我必须包含 mac 地址。这些 mac 地址来自一个 json 文件,作为字符串导入。 例如“00 11 22 33 44 55”(实际上没有空格)
我正在寻找的是一种将此字符串编码为字节数组的简单方法。所以第一个字节应该是 00,第二个是 11,依此类推。
我发现的所有“解决方案”都会将任何字符串编码为字节数组,但这不是我想要的,因为它会进一步拆分我的 mac 地址,因为它们会编码例如 0,然后是 0,然后是 1,然后是 1,依此类推,所以我的 6 字节 MAC 地址变成了 12 字节编码的字节数组。
有没有我可以使用的内置函数,还是我必须创建自己的函数才能做到这一点?
解决方案: 感谢大家和 Arnial 提供最简单的答案。 问题是,我之前或多或少尝试过所有这些答案,但没有任何效果 但是 我的问题不是这些方法的返回类型(我的套接字总是拒绝发送),它实际上是我试图发送的消息的长度。 套接字拒绝发送短于 12 字节(源/目标 mac 地址)的消息,但我只尝试过使用此处介绍的方法之一转换此示例 mac 地址的短消息。
谢谢大家的帮助!
【问题讨论】:
-
您可能必须创建自己的函数。您需要成对地遍历字符串,尝试使用谷歌搜索。
-
哇,Python 提供了大量的函数来执行这个任务的微小变化。到目前为止,
bytes.fromhex、binascii.unhexlify(以及它的另一个名称,binascii.a2b_hex)和base64.b16decode已出现在答案中。我想知道是否还有更多。
标签: python python-3.x