在R中处理多个JSON结果集

时间:2016-01-15 22:51:35

标签: json r

我试图获得一些NBA比赛得分的JSON数据。我遇到的问题是,盒子得分的JSON数据有三个结果集,我只关心其中一个。

test<- "http://stats.nba.com/stats/boxscoretraditionalv2?EndPeriod=10&
       EndRange=14400&GameID=0021500580&RangeType=2&Season=2015-16&
       SeasonType=Regular+Season&StartPeriod=1&StartRange=0000"

library(jsonlite)

json_data <- fromJSON(paste(readLines(test), collapse=""))
str(json_data)

我真的只关心名为&#34; PlayerStats&#34;的结果集。并希望制作一个数据帧。我不确定如何指定或排除其他两个结果集。如果有人能帮助我解决这个问题会很棒!

1 个答案:

答案 0 :(得分:0)

你可以试试这个,它对我有用:

#!/bin/bash

line="some string with a substring you want to match"

print_inarray ()
{ 
    local n=$1 h
    shift
    for h in "$@";do
        if [[ $h = *"$n"* ]]; then
            printf '%s\n' "$h"
            return
        fi
    done
    return 1
}

# Read the line into an array.
read -ra arr <<< "$line"
# Find a substring of a word in array and print the complete word.
print_inarray "ubst" "${arr[@]}"

使用列表时,您可以使用df <- data.frame( json_data$resultSets[ 1 , "rowSet" ] ) names(df) <- unlist( json_data$resultSets[ 1 , "headers" ] ) 来深入挖掘较低级别。