【发布时间】:2021-11-05 07:32:42
【问题描述】:
我确实检查了a lot of different related Q'n'A(请参阅链接问题),但没有一个解决我的具体问题,主要是关于不同的数据类型或要求。
尝试是使用这个sn-p将嵌套映射转换为json:
import json
#...
result = json.dumps(table_scan)
我知道the problems of this working correctly,但这似乎不是这里的问题。以上不幸给了我:
[ERROR] TypeError: Object of type Decimal is not JSON serializable
Traceback (most recent call last):
File "/var/task/lambda-function.py", line 61, in lambda_handler
result
File "/var/lang/lib/python3.7/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/var/lang/lib/python3.7/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/var/lang/lib/python3.7/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/var/lang/lib/python3.7/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
如何在不必进入(相当大的)地图进行“手动”转换的情况下解决此问题。
(更准确地说是应用程序上下文:我的 python AWS lambda 函数使用boto3 执行扫描 DynamoDB,这给了我一个(多层)dict≈map。我的目标是按顺序将此映射转换为 json将其(向外)返回到 AWS API 网关。数据库中的项目来自(向内)API 网关的事件参数。)
【问题讨论】:
标签: python json python-3.x boto3