Ken*_*han 6 python amazon-dynamodb
[{'year': Decimal('222'), 'title': 'aaaaaas'}, {'year': Decimal('1111'), 'title': 'dddd'}]
Run Code Online (Sandbox Code Playgroud)
当我扫描 dynamodb 表时,我得到的数据是一些多余的“十进制”。我想转换成下面的。谢谢。
[{'year': '222', 'title': 'aaaaaas'}, {'year': '1111', 'title': 'dddd'}]
Run Code Online (Sandbox Code Playgroud)
小智 5
当在 DynamoDB 中存储整数时(添加数据时不进行特定类型转换),我发现 DynamoDB 会将其存储为 Decimal。
我已将这一单行代码用于从 DynamoDB 检索的项目,它将所有 Decimal 值转换为整数:
item_retrieved_from_db = dict(map(lambda x: (x[0], int(x[1])) if isinstance(x[1], Decimal) else x, item_retrieved_from_db.items()))
Run Code Online (Sandbox Code Playgroud)
你要求 Python 打印一个字典列表,而不告诉它你想要它的外观。因此,它为您提供的是在 Python 程序中使用它所需的表示形式。无论谁存储数据,都决定将year其存储为Decimal.
Decimal如果你告诉 Python 你希望数据是什么样子,你的“冗余”就会消失:
a =[{'year': Decimal('222'), 'title': 'aaaaaas'}, {'year': Decimal('1111'), 'title': 'dddd'}]
for d in a:
for (k,v) in d.items():
print (k,"=",v)
year = 222
title = aaaaaas
year = 1111
title = dddd
Run Code Online (Sandbox Code Playgroud)
您不需要将 转换Decimal为str. 当需要显示它时,它会正确打印出来。
| 归档时间: |
|
| 查看次数: |
8371 次 |
| 最近记录: |