如何在将行推送到 pgsql 之前验证它是否合规?

Tho*_*ker 6 python database postgresql validation python-3.x

说表结构是这样的:

CREATE TABLE foo (
    id INTEGER  NOT NULL,
    enter_time TIMESTAMP NOT NULL,
    comment TEXT
);   
Run Code Online (Sandbox Code Playgroud)

现在在python中,说我得到这样的数据:

foo_user = {"id": 123, "enter_time": None, "comment": ''}
Run Code Online (Sandbox Code Playgroud)

在将其发送到 pgsql 之前,如何手动验证这些数据?

是否有任何库已经通过从 pgsql 中提取模式信息并对其进行验证来做到这一点?

Lon*_*ldy 0

此查询返回“mytable1”列名称、它们的类型和默认值

 SELECT attname 
      ,pg_catalog.format_type(a.atttypid, a.atttypmod) as Datatype 
      ,coalesce(d.adsrc,'') AS default_value
  FROM pg_catalog.pg_attribute a 
  LEFT JOIN pg_catalog.pg_attrdef d ON (a.attrelid, a.attnum)=(d.adrelid,d.adnum)
 WHERE a.attnum > 0 AND NOT a.attisdropped
   AND a.attrelid = ( SELECT c.oid
                       FROM pg_catalog.pg_class c 
                       LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
                      WHERE c.relname = 'mytable1' AND pg_catalog.pg_table_is_visible(c.oid))
              
Run Code Online (Sandbox Code Playgroud)