Вы можете использовать select
, вот так:
response = {
"2016-12-08": {
"1. open": "61.3000",
"2. high": "61.5800",
"3. low": "60.8400",
"4. close": "61.0100",
"5. volume": "21220753"
},
"2016-12-07": {
"1. open": "60.0100",
"2. high": "61.3800",
"3. low": "59.8000",
"4. close": "61.3700",
"5. volume": "30808969"
},
"2016-12-06": {
"1. open": "60.4300",
"2. high": "60.4600",
"3. low": "59.8000",
"4. close": "59.9500",
"5. volume": "19907035"
}
}
start_date = Date.new(2016, 12, 6)
end_date = Date.new(2016, 12, 7)
response.select { |k, _| Date.parse(k.to_s) >= start_date && Date.parse(k.to_s) <= end_date }
#=> {
# :"2016-12-07"=>{:"1. open"=>"60.0100", :"2. high"=>"61.3800", :"3. low"=>"59.8000", :"4. close"=>"61.3700", :"5. volume"=>"30808969"},
# :"2016-12-06"=>{:"1. open"=>"60.4300", :"2. high"=>"60.4600", :"3. low"=>"59.8000", :"4. close"=>"59.9500", :"5. volume"=>"19907035"}
# }