python 解决 TypeError: fromhex() argument must be str, not int
时间: 2024-05-16 18:17:01 浏览: 349
解决Python中报错TypeError: must be str, not bytes问题
3星 · 编辑精心推荐
这个错误通常出现在你试图将一个整型数作为参数传递给 `bytes.fromhex()` 方法时。这个方法需要一个字符串类型的参数,表示要转换成字节的十六进制数。
要解决这个问题,你需要将整型数转换成一个十六进制字符串,然后再将其传递给 `bytes.fromhex()` 方法。你可以使用内置函数 `hex()` 将整型数转换成十六进制字符串,例如:
```
number = 10
hex_string = hex(number)[2:] # 去掉字符串开头的 '0x'
bytes_from_hex = bytes.fromhex(hex_string)
```
在这个例子中,我们将整型数 `10` 转换成十六进制字符串 `'0a'`,然后将其传递给 `bytes.fromhex()` 方法。
注意,如果你要将多个整型数转换成字节,你需要将它们转换成十六进制字符串,并将它们连接起来,然后再将结果传递给 `bytes.fromhex()` 方法。例如:
```
numbers = [10, 20, 30]
hex_string = ''.join([hex(n)[2:].zfill(2) for n in numbers])
bytes_from_hex = bytes.fromhex(hex_string)
```
在这个例子中,我们将整型数列表 `[10, 20, 30]` 转换成十六进制字符串 `'0a141e'`,然后将其传递给 `bytes.fromhex()` 方法。注意,我们使用了 `zfill()` 方法来确保每个十六进制数都有两位。
阅读全文