python - Python mysql-connector 将数字 TEXT 值转换为整数
问题描述
我对 mysql 进行了成功的 SELECT 请求,但一行是一个数字,但 python 将其转换为整数,结果是从一开始就删除了零。但我希望零不会从一开始就被删除。有没有办法做到这一点?
我的代码
sql = mysql.connector.connect(user='XXX', password='XXX',
host='localhost',
database='database'
)
cursor = sql.cursor()
cursor = sql.cursor(dictionary=True)
cursor.execute("SELECT * FROM database WHERE language='de' AND searchnumber='0290661' ")
myresult = cursor.fetchall()
for row in myresult: searchnumber = row['searchnumber'] # searchnumber = str(row['searchnumber']) has no effect
print(searchnumber) # 返回 290661 但应该是 0290661
解决方案
我经历过类似的事情;来自 TEXT 列的数据在 Python 中被间歇性地解释为数值。在我的情况下,文本是一个 12 位的十六进制值,当十六进制值具有以下形式时出现问题:
XXXXXXXeXXXX
在哪里:
- X = 十进制数字 0-9
- e = 字面上的 'e' 字符
在这种情况下,连接器似乎将其解释为带有指数的整数。不用说,这(通常)会产生一个解释为“Inf”的数字溢出,它没有得到想要的结果。
今天我发现了对 Python 的 MySQL 连接器的一个可能相关的更改。以下是发布说明的链接,其中描述了似乎相关的修复。
https://dev.mysql.com/doc/relnotes/connector-python/en/news-8-0-21.html
请尝试这个并与小组分享您的经验...
推荐阅读
- python - 如何更改直方图条的颜色?
- spring - Swagger CodeGen 错误 - 在 allOf: 中指定了多个内联模式。只有第一个被识别。所有其他都被忽略
- android - 如何将我的标题放在 ImageView 的顶部
- c++ - (C++) | 尝试调用函数时出错
- regex - 如何使用 REGEXEXTRACT 删除 Google Sheet 上多个括号之间的特定文本
- javascript - 测试拒绝 axios 承诺
- python - 用 dask 对列进行平均
- c++ - 函数内部的 C++ 函数
- c# - 从循环存储用户输入以在另一种方法中进行进一步操作的最佳方法
- python - 我将 http.server 与 python3 一起使用,我想将请求存储为变量