1

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

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

但是,当我使用 AWS Ruby SDK 收到响应时,它们已经变成了十进制。

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

请注意,这不是来自同一个项目,所以我知道数字不匹配,格式是问题。

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

或者

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

4

1 回答 1

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)
于 2019-04-04T11:32:26.417 回答