这一行给了我一个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: '\xc2\xa0\xc2\xa0100\xc2\xa0\xc2\xa0'
我尝试过指定不同的编码(比如'ascii'),但它仍然会给我同样的错误。
非常感谢帮助。
答案 0 :(得分:2)
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