Python 类型错误:字段';教室';应为数字,但得到(4,)
我有一个数组。每个嵌套数组都包含有关学生的信息。然后我对它进行迭代,将每个数组保存到一个student对象中,并将其持久化到我的DB中Python 类型错误:字段';教室';应为数字,但得到(4,),python,python-3.x,django,django-models,Python,Python 3.x,Django,Django Models,我有一个数组。每个嵌套数组都包含有关学生的信息。然后我对它进行迭代,将每个数组保存到一个student对象中,并将其持久化到我的DB中 students = [ ["James", "Smith", 4, 10], # more students here ] for s in students: student = Student() student.first_name = s[0], student.last
students = [
["James", "Smith", 4, 10],
# more students here
]
for s in students:
student = Student()
student.first_name = s[0],
student.last_name = s[1],
student.classroom = s[2],
student.grade1 = s[3],
student.save()
学生
类中的教室
字段定义为浮动字段
我发现以下错误:
TypeError:字段“教室”应为数字,但得到(4,)
这可能是什么原因
编辑1:typo尾随逗号创建元组
student.first_name = s[0],
应该是
student.first_name = s[0]
你可以在这里阅读更多关于这种奇怪语法的内容--
一个特殊的问题是构造包含0或1的元组
items:语法有一些额外的怪癖来适应这些。空的
元组由一对空括号构成;具有
一项是通过在值后面加逗号(不是逗号)来构造的
足够将单个值括在括号中)。丑陋,但是
有效
尾随的逗号创建元组
student.first_name = s[0],
应该是
student.first_name = s[0]
你可以在这里阅读更多关于这种奇怪语法的内容--
一个特殊的问题是构造包含0或1的元组
items:语法有一些额外的怪癖来适应这些。空的
元组由一对空括号构成;具有
一项是通过在值后面加逗号(不是逗号)来构造的
足够将单个值括在括号中)。丑陋,但是
有效
正如@match所说,在设置变量值时,后面有逗号。去掉这些,你应该是好的。例如:
student.first_name = s[0]
student.last_name = s[1]
student.classroom = s[2]
student.grade1 = s[3]
student.save()
设置变量之间没有逗号。正如@match所说,设置变量值时,后面有逗号。去掉这些,你应该是好的。例如:
student.first_name = s[0]
student.last_name = s[1]
student.classroom = s[2]
student.grade1 = s[3]
student.save()
设置变量之间没有逗号。我已经编辑了您的代码,但我认为您的意思是这样做:
s = [
["James", "Smith", 4, 10],
# more students here
]
class Student:
def __init__(self,first_name,last_name,classroom,grade):
""" Create a new point at the origin """
self.first_name = first_name
self.last_name = last_name
self.classroom = classroom
self.grade = grade
student = Student(s[0][0],s[0][1],s[0][2],s[0][3])
from pprint import pprint
pprint(vars(student))
我已经编辑了您的代码,但我认为您的意思是这样做:
s = [
["James", "Smith", 4, 10],
# more students here
]
class Student:
def __init__(self,first_name,last_name,classroom,grade):
""" Create a new point at the origin """
self.first_name = first_name
self.last_name = last_name
self.classroom = classroom
self.grade = grade
student = Student(s[0][0],s[0][1],s[0][2],s[0][3])
from pprint import pprint
pprint(vars(student))
问题是所有变量行上的尾随逗号。您实际上是将值设置为
4,
使用float(s[2])不起作用@匹配如何更改行以使其工作?删除逗号。问题是所有变量行上都有尾随逗号。您实际上是将值设置为4,
使用float(s[2])不起作用@匹配如何更改行以使其工作?删除逗号。