MySQL db返回十进制(';number';)值,如何在python中转换数据类型?
标题真的说明了一切。调用一个MySQL数据库,得到一个数据类型,当我尝试将其jsonify时,该数据类型的表现不是很好。试图将此数据类型转换为可用于前端的数据类型让我抓狂 我已尝试调用float、int等。十进制类型持续存在,或者出现编码错误:MySQL db返回十进制(';number';)值,如何在python中转换数据类型?,python,mysql,Python,Mysql,标题真的说明了一切。调用一个MySQL数据库,得到一个数据类型,当我尝试将其jsonify时,该数据类型的表现不是很好。试图将此数据类型转换为可用于前端的数据类型让我抓狂 我已尝试调用float、int等。十进制类型持续存在,或者出现编码错误: UnicodeDecodeError: 'utf8' codec can't decode byte 0xf4 in position 1: invalid continuation byte 编辑: sample query result: (('A
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf4 in position 1: invalid continuation byte
编辑:
sample query result:
(('Albania', '38521', '2011'), ('Algeria', '136964', '2011'), ('Antigua and Barbuda', '206', '2011'), ('Argentina', '86351', '2011'), ('Armenia', '3251', '2011'), ('Aruba', '11511', '2011'), ('Australia', '421690', '2011'), ('Azerbaijan', '31622', '2011'),
top line of query:
original:
SELECT s.country_area AS country, SUM(s.quantity) AS quantity, m.maxyear AS maxyear
v2:
SELECT s.country_area AS country, CAST(SUM(s.quantity) AS CHAR) AS quantity, m.maxyear AS maxyear
编辑2:
v3:
SELECT s.country_area AS country, CAST(SUM(s.quantity) AS CHAR CHARACTER SET utf8) AS quantity, m.maxyear AS maxyear
当我在对象上使用json.dumps时,original获取十进制错误
v2获取utf-8编码错误。。
v2仍然存在utf-8编码错误。该问题可能是由国家/地区字段中的重音字符引起的 如果从SQL结果中获取字节字符串,则必须使用表的编码对其进行解码 默认情况下,MySQL使用latin1_swedish_ci=>ISO-8859-1字符集 所以,你需要像这样解码:
s = b"bytes string with accentuated characters"
u = s.decode("ISO-8859-1")
您将获得unicode字符。您的值是多少?您的表是如何定义的?您使用哪种类型的连接器/ORM?我在flask环境中使用mysql python-原始值的数据类型在mysql数据库中是'int',但我在'quantity'列上执行求和函数OK,因此您应该得到一个
int
。你能在发布对象/表映射(示例)时编辑你的问题吗?我只需要将结果的总和转换为json并传递到前端。我不确定如何在查询中实现它?在python中这样做似乎没有帮助。