Flask SqlAlchemy:为 JSON 类型返回 None 类型插入 'null' 字符串,而不是真正的 NULL

Flask SqlAlchemy: Returning None for JSON type inserts 'null' string, not real NULL

我正在使用 Flask SqlAlchemy。我正在将数据插入 Postgres 数据库,并且有一个 JSON 列类型。当没有数据时,我 return None 的目的是将 NULL 设置到列中。这是建议 .

if someCondition:
    json_obj = json.dumps(my_dict)
    return json_obj
else:
    return None # this inserts a 'null' string incorrectly
    # Only this works correctly:
    return null() # imported from sqlalchemy, 

但我看到这会插入一个 "null" 字符串。获得真正的 NULL 的唯一方法是使用 sqlalchemy.null()。其他人在这个 中也注意到了同样的事情。以下是两种方法的区别。有人可以确认 None 不应该 用于 NULL 插入,以消除混淆吗?

您描述的是默认行为。

JSONJSONB 列类型可以通过将参数 none_as_null 设置为 True 来初始化。该参数默认为False.

documentation供参考。