这条线给我一个 UnicodeEncodeError
studentID = int(studentID.unicode_markup.encode('utf-8').decode('utf-8', 'ignore'))
特别是错误是此UnicodeEncodeError: 'decimal' codec can't encode character u'x00' in position 8: invalid decimal Unicode string
如果我将行更改为:
studentID = int(studentID.unicode_markup.encode('utf-8'))
我得到此错误:
ValueError: invalid literal for int() with base 10: 'xc2xa0xc2xa0100xc2xa0xc2xa0'
我尝试指定其他编码(例如'ascii'),但它仍然给我带来相同的错误。
非常感谢。
您在100
之前和之后的字符串中有一些不可见的字符。因此,int
函数失败了,因为它无法将此字符串转换为int。
在尝试转换为int之前,请尝试以下方法解析任何数字:
import re
# find all characters in the string that are numeric.
m = re.search(r'd+', studentID.unicode_markup)
numeric = m.group() # retrieve numeric string
int(numeric) # returns 100