我目前正在使用 PyMySQL 来查询我的 MySQL 数据库。我希望结果是一个字典,其中的列是键及其关联的值,我已经得到了。但我注意到日期和小数等类型的值作为对象返回,这不是我在其他语言和库中遇到的情况。一个例子是:
{'date': datetime.date(2023, 12, 26), 'store_number': 7, 'total': Decimal('11336.43')}
理想情况下,我只想要类似的东西:
{'date': '2023-12-26', 'store_number': 7, 'total': '10036.43'}
最好的方法是什么?我不一定需要使用 PyMySQL,但它似乎是一个流行的选择。我读过甚至询问过 ChatGPT,但我想我应该询问真实的人他们做过什么和知道什么。我找到的选项是:
任何帮助或见解将不胜感激。谢谢!
这可能会改变 PyMysql 的一些内部配置 - 它只是没有多大意义。
使用 f 字符串或
.format
字符串方法,检索到的对象在语义上更加正确,更易于操作,并且(几乎)轻松转换回字符串。
“简单转换”为字符串的例外是日期时间对象,但是一旦您了解以下内容,它又变得更加实用:日期时间 Python 对象接受
datetime.strftime
方法中可用的相同字段指示符作为 f 中的格式化指示符-字符串(或 str.format
调用):
In [8]: x = datetime.now()
In [9]: f"{x}"
Out[9]: '2024-06-04 19:56:53.551617'
In [10]: f"{x:%Y-%m-%d}"
Out[10]: '2024-06-04'
[WIP - 我会看看是否有办法绕过 pymysql 中的转换,但可能你更擅长使用对象]