2012-12-30 49 views
0

每当我尝试用psycopg2返回数字(以数字形式保存)时,它们最终都是字符串数据类型。psycopg2将字符串作为字符串返回

如何将它们返回为int,float或double?

+3

你可以举一个代码返回错误的结果吗? –

+0

不能用你只用'int'? – jdotjdot

+0

你使用的是什么版本的Python? – Keith

回答

1

FAQ描述了这样做的方法。你基本上注册一个类型处理器。在该页面上搜索Numeric。根据常见问题,你这样做:

DEC2FLOAT = psycopg2.extensions.new_type(
    psycopg2.extensions.DECIMAL.values, 
    'DEC2FLOAT', 
    lambda value, curs: float(value) if value is not None else None) 
psycopg2.extensions.register_type(DEC2FLOAT) 
+0

这样做,谢谢。 – harbun