Я пробовал это. Это выходит за рамки вопроса: вы получаете ввод. Сначала он будет преобразован в строку (если это список, например из Beautiful soup); затем в int, затем в float.
Он идет так далеко, как только может. В худшем случае он возвращает все не преобразованное в виде строки.
def to_normal(soupCell):
''' converts a html cell from beautiful soup to text, then to int, then to float: as far as it gets.
US thousands separators are taken into account.
needs import locale'''
locale.setlocale( locale.LC_ALL, 'english_USA' )
output = unicode(soupCell.findAll(text=True)[0].string)
try:
return locale.atoi(output)
except ValueError:
try: return locale.atof(output)
except ValueError:
return output
'C'этого все равно будетValueError!).