我从 URL 获取数据,并正在处理数据以检查一些条件。 URL 中的数据如下所示:
1528190345":100,"1528190346":100,"1528190368":100,"1528190414":100,"1528190439":99,"1528190440":99,"1528190463":100, “1528190485”:100,“1528190508”:100,“1528190550”:100,“1528190575”:100,“1528190576”:100,“1528190599”:100,“1528190600”:100,“152 8190622":100,"1528190667":100,"1528190688":100,"1528190689":100,"1528190712":100,"1528190736":100,"1528190762":100,"1528190 785":100,"1528190786":100,"1528190807":100,"1528190828":100,"1528190853":100,"1528190877":100,"1528190901":100,"1528190925":100,"1528190948":100,"1528190968":100,"1528190991":100}}]
====
我也将其转换为 JSON
{"metric"=>"Insta_real-unique_value"、"tags"=>{"host"=>"letme.quickly.com"、"tier"=>"2"、"device"=>"tester1"、"dc"=>"xxx"}、"aggregateTags"=>["device_name"、"device_ip"]、"dps"=>{"1526972408"=>100, "1526972424"=>100、"1526972440"=>100、"1526972456"=>100、"1526972472"=>100、"1526972488"=>100、"1526972504"=>100、"1526972520"=>1 00, "1526972536"=>100, "1526972552"=>100, "1526972568"=>100, "1526972569"=>100, "1526972584"=>100, "1526972585"=>100, "1526972601"=>100, "1526972617"=>100, "1526972633"=>100, "1526972649"=>100, "1526972665"=>100, "1526972681"=>100}}
我想提取对应于 100 的值。当我这样做时:
url = "#{URL}"
uri = URI(url)
response = Net::HTTP.get(uri)
value = response[-6..-4]
puts value
我得到了最后一个值,但是当最后一个值更改为 99/9/0
时,它会打印 :99
或 ":9
。
有没有办法获得准确的值?
最佳答案
处理 JSON 数据时,正确解析数据几乎总是比对字符串使用正则表达式更好。
在这种情况下,我们可以这样做:
JSON.parse(response)['dps'].values.last #=> 100
关于arrays - 正则表达式匹配给定数据中的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50696916/