DynamoDB在Ruby中将数字返回为小数而不是整数

时间:2019-04-04 11:21:36

标签: ruby amazon-web-services amazon-dynamodb aws-sdk-ruby

我在地图中存储了一些数字。它们已正确设置,并正确显示在DynamoDB界面中:

results List [1]
    0 Map
        dateTimeCompleted Number : 1554138543
        questionsAnswered Number : 10
        questionsCorrect Number : 5

但是,当我收到响应时,使用AWS Ruby SDK,它们变成了decmimals。

"dateTimeCompleted"=>0.1554376141e10,
"questionsAnswered"=>0.2e2,
"questionsCorrect"=>0.5e1

请注意,这不是同一项目,因此我知道数字不匹配,因此格式很重要。

如何告诉SDK我希望它们为整数?

我需要自己在Ruby中将它们映射为整数吗?

1 个答案:

答案 0 :(得分:1)

使用to_i

0.1554376141e10.to_i # => 1554376141

要转换哈希中的所有值:

my_hash.reduce({}) { |memo, (k,v)| memo[k] = v.to_i; memo }

或:

my_hash.transform_values(&:to_i)