Я читаю json-форматированный источник данных и не могу разобрать его в ядре данных, которое мне бы хотелось.синтаксис jsonlite :: fromJSON() или неверные данные JSON?
jsontxt <- '{"sitesEnergy":{"timeUnit":"DAY","unit":"Wh","count":2,"siteEnergyList":[{"siteId":159864,"energyValues":{"measuredBy":"METER","values":[{"date":"2015-09-01 00:00:00","value":2.0},{"date":"2015-09-02 00:00:00","value":2.0}]}},{"siteId":177606,"energyValues":{"measuredBy":"INVERTER","values":[{"date":"2015-09-01 00:00:00","value":null},{"date":"2015-09-02 00:00:00","value":0.0}]}}]}}'
fromJSON(jsontxt,flatten=TRUE)
выходы:
$sitesEnergy
$sitesEnergy$timeUnit
[1] "DAY"
$sitesEnergy$unit
[1] "Wh"
$sitesEnergy$count
[1] 2
$sitesEnergy$siteEnergyList
siteId energyValues.measuredBy energyValues.values
1 159864 METER 2015-09-01 00:00:00, 2015-09-02 00:00:00, 2, 2
2 177606 INVERTER 2015-09-01 00:00:00, 2015-09-02 00:00:00, NA, 0
Первые семь строки вывода текста выглядят хорошо, но значение для energyValues.values является каскадной версией обоего дат и значений. Я ожидаю, что Somthing так:
siteId energyValues.measuredBy energyValues.values.date energyValues.values.value
1 159864 METER 2015-09-01 00:00:00 2
2 159864 METER 2015-09-02 00:00:00 2
3 177606 INVERTER 2015-09-01 00:00:00 NA
2 177606 INVERTER 2015-09-02 00:00:00 0
так myJSON пакет уродливы, я использую fromJSON inproperly, мне нужно Preprocess jsontxt, или это Somthing еще в целом?
Я пробовал:
fromJSON(jsontxt,simplifyVector = FALSE)
но он возвращает список вместо dataframe, что мне нужно. Я также пробовал без использования параметра flatten = TRUE и не влиял на выход.
Он работает на образец набора данных я предоставил, но, в общем, он не обрабатывает «реальные» данные хорошо с прерывистым значения NULL. У меня есть немного больше работы, прежде чем я смогу понять проблему лучше и двигаться вперед, но это решение заставило меня начать в правильном направлении, поэтому спасибо! – Jonathan