Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MySQL十进制类型的pymysql查询结果转换为Python float_Python_Mysql_Mysql Python_Pymysql - Fatal编程技术网

将MySQL十进制类型的pymysql查询结果转换为Python float

将MySQL十进制类型的pymysql查询结果转换为Python float,python,mysql,mysql-python,pymysql,Python,Mysql,Mysql Python,Pymysql,我对Python(3.x)比较陌生,该语言的一个令人困惑的行为是十进制和浮点似乎是不同的类型(我假设这里的区别是double/float…) 使情况更复杂的是,我的Python逻辑读取/写入MySQL记录,字段定义为Decimal(具有多种格式) 在写端,我欺骗了像这样的pymysql编码器: import numpy as np import pymysql pymysql.converters.encoders[np.float64] = pymysql.converters.escape

我对Python(3.x)比较陌生,该语言的一个令人困惑的行为是十进制和浮点似乎是不同的类型(我假设这里的区别是double/float…)

使情况更复杂的是,我的Python逻辑读取/写入MySQL记录,字段定义为Decimal(具有多种格式)

在写端,我欺骗了像这样的
pymysql
编码器:

import numpy as np
import pymysql

pymysql.converters.encoders[np.float64] = pymysql.converters.escape_float
pymysql.converters.conversions = pymysql.converters.encoders.copy()
pymysql.converters.conversions.update(pymysql.converters.decoders)
我相信,这有助于将Python小数持久化到MySQL记录

但是在读取端,当我们通过pymysql查询读取
Decimal
字段时,似乎没有明显的方法来获取Python
float
s。(这可能意味着悲观情绪,因此可能会丢失数据。)

人们在这里做什么?惯例是否只是到处使用十进制类型来避免这些向下/向上转换问题?那么通过pymysql的MySQL接口呢

我的总体想法是浮动/双重行为应该是自动的。语言对float/double进行区分可能是一件好事;但是,由于一个简单的
+
-
操作数不能很好地处理不同的类型,这段代码完全中断了,这确实令人困惑

谢谢