public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
scan.nextLine();
double d = scan.nextDouble();
scan.nextLine();
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
Вместо попытки
self.type = NULL
попробуйте как Ярослав Админ предложил
self.type = None
Поскольку эквивалент Python для NULL равен None.
Как указывали другие ответы, явный NULL может быть вставлен путем передачи None
или в случае SQLAlchemy a null()
в качестве значения. На самом деле PEP-249 «DB-API v2.0» четко указывает это в «Объекты и конструкторы объектов» :
Значения SQL NULL представлены Python
blockquote>None
singleton на входе и выходе.В качестве третьего варианта можно просто опустить столбец, если он является нулевым:
t = Table('t', metadata, Column('a', Integer), Column('b', Integer)) stmt = t.insert().values(a=1) engine.execute(stmt)
будет эффективно вставлять новый row
(1, NULL)
в таблицеt
, поскольку для столбцаb
значение не указано. То же самое относится к сопоставленным классам, которые, я полагаю, исходный вопрос фактически используется (из-заself
):class T(Base): __tablename__ = 't' id = Column(Integer, primary_key=True) a = Column(Integer) b = Column(Integer) session.add(T(a=1)) session.commit()
снова эффективно приводит к вставке
(default, 1, NULL)
.
Я знаю, что это старый поток, но это сработало для меня
self.type = sqlalchemy.sql.null()