使用MongoDB和AmazonAPI网关解析json
我想在访问AmazonAPI网关调用URL时从mongodb数据库获取数据。 我的lambda处理程序是用Python编写的,如下所示:使用MongoDB和AmazonAPI网关解析json,json,mongodb,amazon-web-services,Json,Mongodb,Amazon Web Services,我想在访问AmazonAPI网关调用URL时从mongodb数据库获取数据。 我的lambda处理程序是用Python编写的,如下所示: def lambda_handler(event, context): return collection.find({}) { "data": [ "{\"content\": \"something\", \"_id\": {\"$oid\": \"some id\"}}", "{\"content\": \"something
def lambda_handler(event, context):
return collection.find({})
{
"data": [
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id\"}}",
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id \"}}",
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id\"}}"
]
}
问题是,由于mongodb对象和datetime对象,pymongo游标不能序列化为json格式。我曾尝试使用bson.json_util
工具,但随后得到如下响应:
def lambda_handler(event, context):
return collection.find({})
{
"data": [
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id\"}}",
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id \"}}",
"{\"content\": \"something\", \"_id\": {\"$oid\": \"some id\"}}"
]
}
我怀疑我得到了上述结果,因为api网关将返回数据格式化为Json,导致返回数据被编码两次
有没有办法阻止AmazonAPI网关将数据编码为json,这样我就可以使用
bson.json_util
?或者有没有其他方法可以使pymongo游标序列化为json格式,而无需两次格式化?如果AWS api gateway已经发送了json对象,那么为什么要再次将其转换为json对象?是否尝试在api gateway中映射模板@Aky_0788 AWS api gateway会自动将其转换为json对象,但由于数据包含ObjectId和datetime对象,因此会失败。@nightgaunt这是什么意思?我不确定如何使用映射模板来完成我的尝试。如果AWS api gateway已发送json对象,那么您为什么再次将其转换为json对象?是否尝试在api gateway中使用映射模板@Aky_0788 AWS api gateway会自动将其转换为json对象,但由于数据包含ObjectId和datetime对象,因此会失败。@nightgaunt这是什么意思?我不确定如何使用映射模板来完成我要做的事情。