[错误]:返回的对象不是 JSON 可序列化的

Posted

技术标签:

【中文标题】[错误]:返回的对象不是 JSON 可序列化的【英文标题】:[Error]: Returned Object is not JSON Serializable 【发布时间】:2011-10-27 12:51:23 【问题描述】:

如何序列化日期时间对象?

我正在尝试这样的事情。

my_date_time = json.dumps(list_of_objects)

list_of_objects 变量是原始查询对 mysql 的响应。

请建议如何序列化包含一些日期时间对象的响应。 谢谢!

【问题讨论】:

您必须手动将datetime对象转换为字符串或数字; JSON 没有本机日期/时间类型。在不了解您的上下文的情况下,我无法确切地说出什么是合适的。 我是 python 新手,请告诉我如何手动执行此操作。 请告诉我们将读取此 JSON 的程序在遇到日期时期望找到什么。 values 中的某处是一个datetime 对象(可能来自cursor.fetchall()) - 你能告诉我们更多关于values["data"] 的结构吗? 是的,value["data"] 是一种字典。其中包含如下值:values["data"]=(one row), (second row) 等等... 【参考方案1】:

感谢大家,最后我使用 CAST(expr AS type) 方法完成了解决方案。

CAST() 函数接受任何类型的表达式并产生指定类型的结果值

SELECT name, CAST(date AS CHAR(10)) FROM table WHERE 条件。

感谢 Zack 和 Hennele Kormano。

【讨论】:

以上是关于[错误]:返回的对象不是 JSON 可序列化的的主要内容,如果未能解决你的问题,请参考以下文章

Python 错误:TypeError:'Timestamp' 类型的对象不是 JSON 可序列化的'

使用 ChoiceField 时,类型错误对象不是 JSON 可序列化的

方法对象不是 JSON 可序列化的

将 django 升级到 1.6.5 后,django 对象不是 JSON 可序列化错误

对象类型为'int64'的叶子热图不是JSON可序列化的错误

TypeError: ObjectId('') 不是 JSON 可序列化的