gpt4 book ai didi

Python - binascii.unhexlify 和 .decode ("hex") 返回 TypeError : Non-hexadecimal digit found

转载 作者:行者123 更新时间:2023-12-05 04:12:26 37 4
gpt4 key购买 nike

我对此进行了广泛的搜索,但找不到解决此问题的帖子。我有一个简单的字符串,它是从 82001B014042 的调制解调器收到的。我想忽略 82001B01 的前面的 header 并解码十六进制数字 4042。我的代码如下;

rxHEX = ser.readline()
print rxHEX #82001B014042
rxData = rxHEX[8:] #4042
print rxData
#rxData = "4042"
rxData = rxData.decode("hex")
#rxData = binascii.unhexlify(rxData)
print rxData

无论我使用 .decode("hex") 还是 binascii.unhexlify(rxData) 我都会收到

TypeError: Non-hexadecimal digit found

如果我取消散列 #rxData = "4042",它会返回 @S,这正是我所期望的。

为什么它不能根据从调制解调器字符串接收到的内容工作?

如果我有

rxHEX = ser.readline()
print rxHEX
rxData = rxHEX[8:]
print rxData
I recieve

输出是

82001F014042
4042

最佳答案

因为您正在使用 .readline(),所以您的字符串很可能在末尾包含换行符(或 CRLF 对)。因此,您应该尝试 rxData = rxHEX[8:].strip()

关于Python - binascii.unhexlify 和 .decode ("hex") 返回 TypeError : Non-hexadecimal digit found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393854/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com