将Json响应转换为唯一的数据帧

时间:2018-04-11 17:59:07

标签: r json data-manipulation httr

使用tm1 rest api,我可以从post请求中获取数据。

  Date: 2018-04-11 14:43
  Status: 201
  Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
  Size: 2.86 MB

然后我使用以下命令将此响应转换为json格式:

fromJSON(content(data, type = "text"))

然后它出现了:

*更新:

现在我安装了Jsonlite,我得到了一个数据帧:

Here is what I am getting

其中层次结构[[ 1 ]]和Outcome表示5个列名称,而元组[2]和[1]表示这些行的值5列。

[value] Cells,是最后一列,已经是数据帧格式。

但所有变量似乎都是一个列表,并且[值]上只出现一个独特的数据帧。

我试过了:

   df_list <- list( df[["Axes"]][["Hierarchies"]], df[["Axes"]][["Tuples"]], df[["Cells"]][["Value"]])

但是,我并不确切知道如何正确合并。

在python中,使用此脚本进行此转换:

2

 def build_pandas_dataframe_from_cellset(cellset, multiindex=True, sort_values=True):
    """

    :param cellset: 
    :param multiindex: True or False
    :param sort_index: Boolean to control sorting in result DataFrame
    :return: 
    """
    cellset_clean = {}
    for coordinates, cell in cellset.items():
        element_names = element_names_from_element_unqiue_names(coordinates)
        cellset_clean[element_names] = cell['Value']

    dimension_names = tuple([unique_name[1:unique_name.find('].[')] for unique_name in coordinates])

    # create index
    keylist = list(cellset_clean.keys())
    index = pd.MultiIndex.from_tuples(keylist, names=dimension_names)

    # create DataFrame
    values = list(cellset_clean.values())
    df = pd.DataFrame(values, index=index, columns=["Values"])

    if not multiindex:
        df.reset_index(inplace=True)
        if sort_values:
            df.sort_values(inplace=True, by=list(dimension_names))
    return df

我想做类似的一步。

0 个答案:

没有答案