首页 > 解决方案 > str 到 int:ValueError:int() 以 10 为底的无效文字

问题描述

我正在尝试在 Django/Python 中编写单元测试。我有想要用来创建记录的 csv 文件,但是当我尝试将 str 转换为 int 时出现我不明白的错误:

错误

ValueError:int() 以 10 为底的无效文字:'med_dru'(med_dru 是一个整数)

代码

liste_correspondance = "adm_med.csv"
file1 = open(liste_correspondance,'r')
    reader = csv.reader(file1)
    for row in reader:
        Medicament.objects.create(med_dru = int(row[1]),med_sit = row[2],med_pay = row[5],med_num = row[6])

标签: pythonunit-testingtype-conversion

解决方案


看起来您正在尝试为标题行创建一个对象。试着扔掉第一行:

liste_correspondance = "adm_med.csv"
file1 = open(liste_correspondance,'r')
    reader = csv.reader(file1)
    next(reader, None)
    for row in reader:
        Medicament.objects.create(med_dru = int(row[1]),med_sit = row[2],med_pay = row[5],med_num = row[6])

推荐阅读