다른 JSON과 합류. 나는 원래 JSON과 이동 평균 값에 가입하고 싶습니다, 그래서 나는 매일 같은 것을 얻을 :해시 나는이 같은 JSON이 루비
{
"Low": 8.68,
"Volume": 20239700,
"Date": "2012-10-24",
"High": 8.92,
"Close": 8.7,
"Adj Close": 8.7,
"Open": 8.85,
"SMA9": 8.92
}
이 한 i를 sma9day 변수 :
h = { "SMA9" => sma9day }
sma9json = h.to_json
puts sma9json
을이 출력 :
{"SMA9":[8.92,8.93,8.93]}
어떻게 JSON과 호환되는 형식으로 넣고 두 가지를 결합합니까? JSON의 마지막 8 개 레코드는 9 일 이동 평균 값을 갖지 않으므로 위에서 아래로부터 "일치/결합"해야합니다 (이 경우에는 여전히 키가 있어야합니다 (SMA9)). 값으로 전무 제로가
감사합니다UPDATE 최신 :..
이내가 지금 이것을 가지고, 나를 매우 가까이 가져, 그러나 그것은 JSON에서 SMA9 필드에 전체 문자열을 반환 ...
require json
require simple_statistics
json = File.read("test.json")
quotes = JSON.parse(json)
# Calculations
def sma9day(quotes, i)
close = quotes.collect {|quote| quote['Close']}
sma9day = close.each_cons(9).collect {|close| close.mean}
end
quotes = quotes.each_with_index do |day, i|
day['SMA9'] = sma9day(quotes, i)
end
p quotes[0]
=> {"Low"=>8.63, "Volume"=>14211900, "Date"=>"2012-10-26", "High"=>8.79, "Close"=>8.65, "Adj Close"=>8.65, "Open"=>8.7, "SMA9"=>[8.922222222222222, 8.93888888888889, 8.934444444444445, 8.94222222222222, 8.934444444444445, 8.937777777777777, 8.95, 8.936666666666667, 8.924444444444443, 8.906666666666666, 8.912222222222221, 8.936666666666666, 8.946666666666665, 8.977777777777778, 8.95111111111111, 8.92, 8.916666666666666]}
내가 계산을 끝내기 전에 sma9day.round (2)를 할려고 할 때 (아마도 배열 때문에?), 그리고 내가 sma9day [0] .round (2)를했을 때, 그것은 정확히 반올림하지만, 모든 레코드는 물론 같은 SMA를가집니다.
도움을 주시면 감사하겠습니다. 감사합니다
그 밖의 javascript ... – AJcodez