Tôi đã thử cái này. Nó đi xa hơn một chút so với câu hỏi: Bạn nhận được một đầu vào. Nó sẽ được chuyển đổi thành chuỗi đầu tiên (nếu nó là một danh sách, ví dụ từ Beautiful soup); sau đó đến int, rồi đến float.
Nó đi xa nhất có thể. Trong trường hợp xấu nhất, nó trả về mọi thứ chưa được chuyển đổi dưới dạng chuỗi.
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'điều này sẽ vẫn cung cấp cho bạnValueError!).