[错误]:返回的对象不是 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 可序列化的
将 django 升级到 1.6.5 后,django 对象不是 JSON 可序列化错误