【发布时间】:2020-01-27 10:01:39
【问题描述】:
从 Django Admin 我正在设置导入按钮以导入 .csv 文件。 只要我使用 CharField 设置 models.py,一切正常。
当我把它变成 FloatField 时:
from django.db import models
class Moon(models.Model):
name = models.CharField(max_length=30)
code_name = models.IntegerField()
planet = models.FloatField()
lumen = models.FloatField()
power = models.FloatField()
当数据的浮点数用逗号而不是点分隔时,我收到行[3]的错误:
无法将字符串转换为浮点数:'0,00'
我有很多关于该主题的信息,但这些信息都没有帮助我找出我的问题。据我了解,我的首要任务是预处理包含数千行的 .csv 文件,在上传到 admin.py 之前对其进行预格式化。 我对么?关于如何进行的任何提示?
def import_csv(self, request):
if request.method == "POST":
csv_file = TextIOWrapper(request.FILES["csv_file"].file, encoding='utf-8')
reader = csv.reader(csv_file)
# create Moon object from passed in data
for row in reader:
Moon.objects.get_or_create(
name=row[0], <-- that row is a str
code_name=row[1], <-- that row is an int
planet=row[2], <-- that row is an int
lumen=row[3], <-- that row is a float
power=row[4] <-- that row is a float
【问题讨论】: