【发布时间】:2020-12-29 02:51:41
【问题描述】:
我在 Python 中使用 MySQL 连接器来存储和获取一些 JSON 数据。我在将存储的 JSON 值作为实际的 Python 数据类型时遇到问题。希望有人能指出我正确的方向。
假设我有下表,TestTable;
id data
1 {"val": 100.5}
2 {"val": true}
我有以下 SQL 查询:
SELECT id, data->"$.val" FROM TestTable;
- 当我在 mysql 客户端的终端中运行查询时,结果看起来不错
- 当我在 Python 脚本中运行查询时,“val”的结果是浮点值(即“100.5”)的字符串类型和布尔值(即真)的布尔类型
这是 Python 代码
cmd = "SELECT id, data->"$.val" FROM TestTable;"
mysql_cur.execute(cmd)
res = mysql_cur.fetchall()
mysql_cur.close()
# res has id and val. id is of type int, val is of type string for float value and type bool for boolean value
如何将结果转换为 Python 的数据类型,即。浮点数和布尔值?
谢谢,
【问题讨论】:
-
你不能。在结果中,该列中的所有值必须具有相同的数据类型。
-
@GMB 即使所有的“val”都是float值,结果集仍然有val作为字符串。
-
然后检查内容并进行转换
-
@nbk 这就是我现在正在做的事情。我希望有一种更好的方法来做到这一点,例如我在 mysql 连接器中不知道的设置,可以像转换布尔值一样自动转换它们。
标签: mysql