读取dynamodb并获得冗余"十进制"字

时间:2018-04-01 08:43:07

标签: python amazon-dynamodb

[{'year': Decimal('222'), 'title': 'aaaaaas'}, {'year': Decimal('1111'), 'title': 'dddd'}]

当我扫描dynamodb表时,我得到了一些冗余的数据" Decimal"。我想转换成下面。感谢。

[{'year': '222', 'title': 'aaaaaas'}, {'year': '1111', 'title': 'dddd'}]

2 个答案:

答案 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 。当显示它时,它将正确打印出来。