我正在编写一个 Django 视图,它需要一个附加的 csv 文件并将其读入数据库:
视图.py:
def climate_upload(request):
...
if form.is_valid(): # All validation rules pass
file = request.FILES['attach']
for line in file:
line = line.split(';')
report = Site1()
...
# These fields values be empty, integer or float
report.mean_air_temp = float(line[4])
report.min_air_temp = float(line[5])
report.max_air_temp = float(line[6])
report.sea_temp = float(line[7])
report.mean_rel_hum = float(line[8])
report.precipitation = float(line[9])
report.save()
file.close()
我知道这是非常粗略的代码,但是如果我运行它并且其中一个字段为空(''),我会得到一个ValueError could not convert string to float:
.
我可以为每个字段执行此操作:
try:
report.mean_air_temp = float(line[4])
except(ValueError):
report.mean_air_temp = None
这给了我所需的结果,但看起来并不那么健壮/优雅。
我将不胜感激有关如何处理此代码块的任何指导。