You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.7环境下Lambda从DynamoDB getItem后转JSON问题求助

解决DynamoDB返回字符串转JSON的问题

嘿,别着急,这个问题其实是因为你还没完全摸透DynamoDB返回数据的结构,以及json.loads()和json.dumps()的正确用法~ 我给你一步步拆解明白:

首先,你从DynamoDB拿到的这个数据是它的原生格式,每个值都带着类型标识(比如"S"代表字符串类型)。你得先把那个被转义的JSON字符串从里面提取出来,再用json.loads()去解析——而不是直接对整个DynamoDB返回数据操作。

具体步骤和代码示例

import json

# 你从DynamoDB获取到的原始数据
dynamodb_result = { "key": { "S": "{\"status\": 1,\n \"number\": 12}" } }

# 第一步:提取出藏在"S"字段里的转义JSON字符串
target_str = dynamodb_result["key"]["S"]

# 第二步:用json.loads()把字符串解析成Python字典(也就是你要的JSON格式对象)
parsed_json = json.loads(target_str)

# 看看结果:这就是你想要的结构化数据了
print(parsed_json)
# 输出: {'status': 1, 'number': 12}

# 如果之后需要把这个字典转回格式化的JSON字符串,再用json.dumps()
formatted_json_str = json.dumps(parsed_json, indent=2)
print(formatted_json_str)
# 输出:
# {
#   "status": 1,
#   "number": 12
# }

为什么你之前尝试没成功?

  • 可能你直接对整个dynamodb_result用了json.loads(),但它本身已经是Python字典了,根本不需要再解析;
  • 也可能搞混了loads和dumps的作用:loads()是把JSON字符串转成Python对象,dumps()是把Python对象转成JSON字符串,顺序搞反肯定出问题哦~

下次遇到DynamoDB的返回数据,记得先根据类型标识(S字符串、N数字、L列表等)提取对应的值,再做后续处理就顺畅啦!

内容的提问来源于stack exchange,提问作者ABCD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:55:07