psycopg2如何将NULL类型更改为字符串“NA”而不是Non

2024-10-01 13:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

psycopg2通过NoneAdapter将NULL转换为None(对吗?) 如何创建另一个将所有NULL转换为字符串“NA”的适配器?在

谢谢

*更新: @太棒了
以下是我所拥有的: 执行此查询后:

SELECT pg_type.oid
FROM pg_type JOIN pg_namespace
    ON typnamespace = pg_namespace.oid
WHERE typname = 'point'
    AND nspname = 'pg_catalog';  

得到point_oid=600,所以我继续这个:

^{pr2}$

不起作用o.o它仍然没有返回


Tags: 字符串fromnonetype适配器namespaceselectnull
2条回答

只需:

row = cux.fetchone()
field = row[col] if row[col] is not None else 'NA'

完成了!在

如果要将其应用于行中的所有列,请使用map():

row=map(lambda x:x,如果x不是None'NA',卡克斯。费托恩())

实际上NoneAdapter所做的与您想要的相反,将python的None类型转换为sqlnull。有关将SQL类型转换为python对象的信息,请查看official psycopg2 documentation。在

基于此,看起来您需要为每种类型注册适配器函数,但我假设该函数只是:

def NA(value, cur):
    if value is None:
        return 'NA'
    return value

然后注册psycopg2.extensions.new_typepsycopg2.extensions.register_type。在

相关问题 更多 >