[{'year': Decimal('222'), 'title': 'aaaaaas'}, {'year': Decimal('1111'), 'title': 'dddd'}]
当我扫描dynamodb表时,我得到了一些冗余的数据" Decimal"。我想转换成下面。感谢。
[{'year': '222', 'title': 'aaaaaas'}, {'year': '1111', 'title': 'dddd'}]
答案 0 :(得分:0)
在 DynamoDB 中存储整数时(在添加数据时不进行特定的类型转换),我发现 DynamoDB 会将其存储为小数。
我已经将这个单行用于从 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()))
答案 1 :(得分:-1)
您要求Python打印一个dicts列表,而不告诉它您希望它看起来如何。所以它给你的是你需要在Python程序中使用它的表示。存储数据的人决定将double result = temp_value - 32 / 1.8;
存储为double result = (temp_value - 32) / 1.8;
。
如果您告诉Python您希望数据的外观,那么“冗余”year
将会消失:
Decimal
您无需将Decimal
转换为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
。当显示它时,它将正确打印出来。