使用python将不同种类的浮点数格式化为原始格式

时间:2015-11-12 21:39:41

标签: python formatting

我使用python / cx_Oracle选择Oracle数据并使用相同的字段类型插入Impala

我在Oracle表中有数字字段,并且它的样本数据就像那样

0.1428571428571428571428571428571428571429
0
0.2111
2.1
0.04

所以我试图创建sql字符串来执行插入数据到Impala那样的

sql4Impala = "insert into test01.ornek_2 values (%f, '%s', '%s', '%s', '%s')" % (row[0], row[1], row[2], row [3], row[4])

我的问题是从这里开始我不知道从甲骨文那边选择了什么样的实数。因此无法将数字格式化为原始格式

例如

0.0344827586207 it's original data
0.034483        automatically trimed out with %f

那么我怎么能在sql4Impala中格式化实数而我不知道原始数据的格式

由于

1 个答案:

答案 0 :(得分:0)

如果直接获取数据,则会返回浮点数,这些浮点数与数据库中存储的Oracle数字的精度不同。要解决此问题,请将数据检索为字符串,然后使用decimal.Decimal(value)。像这样:

connection = cx_Oracle.connect("user/pw@tns")
cursor = connection.cursor()
cursor.execute("select to_char(some_number) from some_table")
for rawNumber, in cursor:
    number = decimal.Decimal(rawNumber)