ruby - 发生 Ruby 异常:在 Logstash ruby 过滤器中没有将 String 隐式转换为 Integer
问题描述
我收到 Logstash 错误:
[2018-10-10T17:24:11,048][ERROR][logstash.filters.ruby ] Ruby exception occurred: no implicit conversion of String into Integer
[2018-10-10T17:24:11,049][ERROR][logstash.filters.ruby ] Ruby exception occurred: no implicit conversion of String into Integer
[2018-10-10T17:24:11,047][ERROR][logstash.filters.ruby ] Ruby exception occurred: no implicit conversion of String into Integer
我的输入:
"files": [{
"SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
"MD5": "7D332F11DD7389C8121AA523F07CFEEC",
"SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
}, {
"SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
"MD5": "7D332F11DD7389C8121AA523F07CFEEC",
"SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
}, {
"SHA256": "1212447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
"MD5": "7D332F11DD7389C8121AA523F07CFEEC",
"SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
}
]
我的代码:
a = event.get("files"); event.set("files_md5", a.map { |e| e["MD5"]
该代码正在将上面的输入转换为:
"files":["7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC"]
由于这些错误,没有数据被丢弃,但是,我不想拥有它们。我努力了:
a = event.get("files"); event.set("files_md5", a.map { |e| e["MD5"].to_i
在这种情况下,有没有办法正确地进行隐式转换?非常感谢帮助。
解决方案
推荐阅读
- javascript - 我从页面导出了一些变量并尝试导入变量。但它不工作
- python - 回归分析中的“TypeError:列表索引必须是整数或切片,而不是 str”
- azure - 看不到 Azure CDN 的使用情况
- r - 如果最大组值 > 某个值,则过滤 data.table 组中的行
- ios - React-Native、IOS、Firebase - 由于“循环”而无法分发到 AppStore
- ios - 为什么 SwiftUI 中没有等效的 UICollectionView?
- ruby-on-rails - 如何使用活动存储和 poppler 预览 pdf?
- node.js - 如何将 Google OAuth2 ID 令牌与 node.js/passport.js 一起使用来验证用户是否有效且经过身份验证?
- jquery - WordPress 滚动问题和白色内容
- three.js - 如何将 THREE.Sprite 的比例设置为以像素为单位的宽度?