我有这个模型,
class user2(models.Model):
user = models.ForeignKey(User)
number = models.IntegerField(null=True)
和包含如下信息的csv文件:
number,0001,0002,0003, ...
所以,我需要检查我从csv中获取的数字是否存在,如果没有,我用django用户模型创建用户,然后创建user2用户,现在我试试这个,检查数字是否存在存在于db
中def import_csv(path):
path = "/home/ad/ds/Web.csv"
with open(path) as f:
reader = csv.reader(f)
for row in reader:
try:
if not user2.objects.filter(number=int(row[0])).exists():
print "no"
except:
print "asd "
但是当我这样做时,我得到了这个错误:
invalid literal for int() with base 10: 'number'
我怎么能这样做?谢谢
答案 0 :(得分:0)
出现此问题的原因是您尝试将csv文件中第一个csv值(即csv文件中的字符串)强制转换为int
:
if not user2.objects.filter(number=int(row[0])).exists():
您可以将代码更改为此值,以跳过第一个csv值为字符串,并从第二个值0001
try:
if not user2.objects.filter(number=int(row[1])).exists():
#do stuff
except ValueError:
# csv value was not an int