sql >> Databasteknik >  >> RDS >> PostgreSQL

SQLAlchemy med standarddataklass fyller inte postgres-databasen

Sedan '' och 0 är respektive standard returnerade värden för str() och int() funktioner, kan du använda följande kod för att infoga dessa standardvärden:

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=str)
    age: int = field(default_factory=int)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)

Tyvärr, av någon anledning, använder default parameter för field() funktionen fungerar inte som vi kunde förvänta oss (kan vara en bugg i dataclasses backport eller ett missförstånd...). Men du kan fortfarande använda default_factory för att ange värden som skiljer sig från '' och 0 med lambda :

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=lambda: 'john doe')
    age: int = field(default_factory=lambda: 77)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)


  1. Lagrad procedur med tabellnamn som parameter

  2. Sequel Pro och MySQL-anslutningen misslyckades

  3. konvertera hashmap till stringarray

  4. Olöst symbol:sql::mysql::get_driver_instance(void)