我正在尝试找到一种格式化科学数字并将其保存到数据库中的方法。我的号码是从csv文件中读取的。
model.py
class Doc(models.Model):
....
big=models.BigIntegerField(null=True)
views.py
for line in csvfile:
data = Doc()
data.big=line['big_number']
data.save()
以下代码生成此错误:
对于基数为10的int()的无效文字:'2,02161E + 12'
2,02E + 12是在标准格式上读取时csv文件上的值,对于数字格式读取为2021610000000时的值。我想存储“2021610000000”。 有没有办法强制读取csv列作为数字?
答案 0 :(得分:1)
您的数据格式错误。虽然int(' 2,02161E + 12')和浮动(' 2,02161E + 12')确实会产生错误浮动(' 2.02161E + 12' ;) 不会。所以解决方案是
int( float('2,02161E+12'.replace(',','.')) )