bin_data = binascii.unhexlify(hex_str) binascii.Error: Non-hexadecimal digit found
时间: 2023-09-10 13:08:00 浏览: 320
这个错误表示输入的字符串中包含了非十六进制的字符。在使用unhexlify()函数将十六进制字符串转换为二进制数据时,只能包含0-9、A-F和a-f这些字符,如果包含其他字符就会报错。
需要检查一下输入的字符串,确保其只包含十六进制字符,如果有其他字符可以尝试去掉或者替换成十六进制字符。以下是一个Python代码示例,用于检查输入的字符串是否只包含十六进制字符:
```python
import re
hex_str = "v2_0a2c6fab8e5c40c5ff29c62e8369bff2193e0a3a0d46ee23c2fb59abecd8e46454e79431362cc97e0065e5e7fb0a1a490a3cab28f979ecbbc508bfe02f7db3d55ae780372e9598e729639589c7f9cc12e4c1794bf433d0e842af11aba67ce5df50ca3e9d211ce22d284d2d73fa4110acbeb20d18e5ade4c9012201039a98a679"
if re.fullmatch(r"[0-9a-fA-F]+", hex_str):
print("Input string contains only hexadecimal digits")
else:
print("Input string contains non-hexadecimal digits")
```
这个示例中,我使用了正则表达式来判断输入的字符串是否只包含十六进制字符,如果是则输出“Input string contains only hexadecimal digits”,否则输出“Input string contains non-hexadecimal digits”。
阅读全文