Python MySQLdb在查询时,如果是datetime类型,在json序列化的时候会出现问题。
接收时发现时间格式前面有个b,导致json序列化失败。
[{
'id': 1,
'documentName': 'test',
'createTime': b '2021-07-14 13:13:24'
}, {
'id': 4,
'documentName': '哈弗H6',
'createTime': b '2021-10-18 13:40:44'
}, {
'id': 47,
'documentName': 'tumo_pms20211018.docx',
'createTime': b '2021-10-18 17:30:07'
}]
解决思路:
想了一下,觉得不如从MySQL下手,让MySQL返回string的数据类型。在SQL引擎下做数据处理,肯定比自己for处理要效率的多。
MySQL做数据类型转换的函数是CAST。于是将SQL语句变成:
SELECT id,documentName,CAST(createTime AS CHAR) AS createTime FROM `documents`
Python接收
{
"data": [
{
"createTime": "2021-07-14 13:13:24",
"documentName": "test",
"id": 1
},
{
"createTime": "2021-10-18 13:40:44",
"documentName": "\u54c8\u5f17H6",
"id": 4
},
{
"createTime": "2021-10-18 17:30:07",
"documentName": "tumo_pms20211018.docx",
"id": 47
}
],
"status": "success"
}