Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 db返回十进制(';number';)值,如何在python中转换数据类型?_Python_Mysql - Fatal编程技术网

MySQL db返回十进制(';number';)值,如何在python中转换数据类型?

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

标题真的说明了一切。调用一个MySQL数据库,得到一个数据类型,当我尝试将其jsonify时,该数据类型的表现不是很好。试图将此数据类型转换为可用于前端的数据类型让我抓狂

我已尝试调用float、int等。十进制类型持续存在,或者出现编码错误:

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中这样做似乎没有帮助。