我正在尝试将一些行插入到一个包含整数字段的表中,该字段可以为空:
cur.execute("INSERT INTO mytable (id, priority) VALUES (%(id)d, %(priority)d)", \
{'id': id, 'priority': priority})priority变量可以是整数,也可以是None。当优先级为整数值时,这是有效的,但是,当优先级为None时,我得到以下错误:
internal error in 'BEGIN': int argument required我注意到,对于Python的字符串格式化,通常不能使用None作为要格式化的整数的值-它抛出的错误与pgdb抛出的错误相同。但是,当我将格式化字符串更改为%(priority)s时,错误更改为:
internal error in 'BEGIN': unsupported format character 'W' (0x57) at index 60我猜这是因为我正在尝试将一个字符串导入到一个整数字段中。
如何导入空值?
发布于 2012-07-02 09:46:30
通常,Postgresql会自动将字符串值转换为整型列的整型。因此,如果字符串参数包含整数或为None,对整型列使用%(priority)s之类的字符串格式化程序通常是安全的。如果字符串设置为None,则该列将被指定为NULL。
https://stackoverflow.com/questions/2342390
复制相似问题