简体   繁体   English

str 到 int: ValueError: 以 10 为基数的 int() 的无效文字

[英]str to int: ValueError: invalid literal for int() with base 10

I am trying to write a unit test in Django/Python.我正在尝试用 Django/Python 编写单元测试。 I have csv files I want to use to create records but I get an error I do not understand when I try to convert a str to int:我有我想用来创建记录的 csv 文件,但是当我尝试将 str 转换为 int 时出现我不明白的错误:

Error错误

ValueError: invalid literal for int() with base 10: 'med_dru' (med_dru is an integer) ValueError: 以 10 为基数的 int() 的无效文字:'med_dru'(med_dru 是一个整数)

Code代码

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])

It looks like you are trying to create an object for the header row.看起来您正在尝试为标题行创建一个对象。 Try just throwing away the first line:尝试扔掉第一行:

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])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM