我正试图从m RDS数据库中返回一套装备。dte字段均采用DATETIME格式,这导致我出现以下错误:
TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
我怎么才能绕过这个?
这是我的代码:
import pymysql
import json
from rds import *
#rds settings
host = rds_host
name = rds_name
password = rds_password
db_name = rds_db_name
port = rds_port
try:
conn = pymysql.connect(host = host, user=name, passwd=password, db=db_name, connect_timeout=5)
except:
raise Exception('Database Error: The server encountered an unexpected condition which prevented it from fulfilling the request.')
def handler(event, context):
cur = conn.cursor(pymysql.cursors.DictCursor)
#selects a user from the database
query = "SELECT * FROM Outfits WHERE outfit_id = '" + event['outfitId'] + "' LIMIT 1"
#runs the SQL query
try:
cur.execute(query)
except:
raise Exception('Internal Error: The server encountered an unexpected condition which prevented it from fulfilling the request.')
#stores the downloaded record into the user variable
rows = cur.fetchone()
return result
您不能以其他格式存储日期时间吗?看起来查询数据库的响应是JSON格式的,将日期存储为字符串肯定会更有效率?
datetime.datetime
对象不能被JSON序列化,您需要在JOSN序列化之前将它们转换为字符串。您可以使用. strftime()
将您的datetime.datetime
对象转换为字符串。
我在Python中有一个类,用于检索表中的所有列,并返回包含此数据的JSON。 问题是这些列中至少有一列是datetime,我似乎不知道如何序列化这些列以便生成有效的JSON。 我的班级如下: 有什么线索吗?
我正在学习Python和aws。 我想要的是从JSON响应中提取值。此代码适用于不包含日期值的JSON响应,但在本例中,响应包含日期值。 这是我的密码: 我得到了这个错误: 有人知道解决办法吗?thx
问题内容: 我有以下用于序列化查询集的代码; 以下是我的 我需要序列化。但是它说无法序列化。因为列表由Django对象和字典组成。有任何想法吗 ? 问题答案: 并且不能很好地与Django对象配合使用。 Django的内置序列化器只能序列化由django对象填充的查询集: 在您的情况下,其中包含django对象和dict的混合。 一种选择是摆脱中的模型实例,并使用dict将其替换为: 希望有帮助。
问题内容: 在使用Python查询文档上的聚合函数后,我从MongoDB返回了响应,它返回有效响应,我可以打印该响应但不能返回它。 错误: 打印: 但是当我尝试返回时: 这是RESTfull调用: 数据库连接良好,集合也在那里,我得到了有效的预期结果,但是当我尝试返回时,它给了我Json错误。任何想法如何将响应转换回JSON。谢谢 问题答案: 您应该定义自己并使用它: 也可以按以下方式使用它。
在使用Python查询文档上的聚合函数之后,我从MongoDB返回的响应返回了有效响应,我可以打印它,但无法返回它。 错误: 打印: 但当我试图返回时: 这是一个完整的电话: 数据库连接良好,收集也在那里,我得到了有效的预期结果,但当我试图返回它给我Json错误。任何想法如何将响应转换回JSON。谢啦
问题内容: 我正在尝试以JSON形式发送POST请求。 *电子邮件变量的类型为“字节” 我得到错误: 您能告诉我我做错了什么吗? 问题答案: 发生这种情况是因为您要在dict中(特别是)传递一个对象,可能是作为的值。您需要先将其解码为一个对象,然后才能使用它: