繁体   English   中英

如何从列表中每个响应的特定项目中制作一个 dataframe?

[英]How to make one dataframe from a specific item from each response in a list?

我在 Spotify API 请求中列出了 R 中的 4 个项目:

> lijstwijk
[[1]]
Response [https://api.spotify.com/v1/search?q=track%3APompeii%20artist%3ABastille&type=track&limit=1]
  Date: 2020-06-16 20:14
  Status: 200
  Content-Type: application/json; charset=utf-8
  Size: 2.78 kB
{
  "tracks" : {
    "href" : "https://api.spotify.com/v1/search?query=track%3APompeii+artist%3ABastille&type=track&offset=0&limit=1",
    "items" : [ {
      "album" : {
        "album_type" : "album",
        "artists" : [ {
          "external_urls" : {
            "spotify" : "https://open.spotify.com/artist/7EQ0qTo7fWT7DPxmxtSYEc"
          },
...

[[2]]
Response [https://api.spotify.com/v1/search?q=track%3AUnderdog%20artist%3AAlicia%20Keys&type=track&limit=1]
  Date: 2020-06-16 20:14
  Status: 200
  Content-Type: application/json; charset=utf-8
  Size: 3.84 kB
{
  "tracks" : {
    "href" : "https://api.spotify.com/v1/search?query=track%3AUnderdog+artist%3AAlicia+Keys&type=track&offset=0&limit=1",
    "items" : [ {
      "album" : {
        "album_type" : "single",
        "artists" : [ {
          "external_urls" : {
            "spotify" : "https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa"
          },
...

[[3]]
Response [https://api.spotify.com/v1/search?q=track%3AThe%20Way%20It%20Is%20artist%3ABruce%20Hornsby%20&%20The%20Range=&type=track&limit=1]
  Date: 2020-06-16 20:14
  Status: 200
  Content-Type: application/json; charset=utf-8
  Size: 4.58 kB
{
  "tracks" : {
    "href" : "https://api.spotify.com/v1/search?query=track%3AThe+Way+It+Is+artist%3ABruce+Hornsby+&type=track&offset=0&limit=1",
    "items" : [ {
      "album" : {
        "album_type" : "album",
        "artists" : [ {
          "external_urls" : {
            "spotify" : "https://open.spotify.com/artist/2iM28IgKg89v1o7BTQAVPo"
          },
...

[[4]]
Response [https://api.spotify.com/v1/search?q=track%3ABefore%20You%20Go%20artist%3ALewis%20Capaldi&type=track&limit=1]
  Date: 2020-06-16 20:14
  Status: 200
  Content-Type: application/json; charset=utf-8
  Size: 3.76 kB
{
  "tracks" : {
    "href" : "https://api.spotify.com/v1/search?query=track%3ABefore+You+Go+artist%3ALewis+Capaldi&type=track&offset=0&limit=1",
    "items" : [ {
      "album" : {
        "album_type" : "single",
        "artists" : [ {
          "external_urls" : {
            "spotify" : "https://open.spotify.com/artist/4GNC7GD6oZMSxPGyXy4MNB"
          },

我只需要列表中每个响应中的项目 spotify:track uri。 因此,对于前两个结果,我是手动完成的:

# item one #

> itemone <- lijstwijk[[1]]
> itemoneparsed <- content(itemone, as="parsed")
> uritstone <- itemoneparsed$tracks$items[[1]]$uri
> uritstone 

[1] "spotify:track:3gbBpTdY8lnQwqxNCcf795"

#item two#
> itemtwo <- lijstwijk[[2]]
> itemtwoparsed <- content(itemtwo, as="parsed")
> uritsttwo <- itemtwoparsed$tracks$items[[1]]$uri
> uritsttwo 

[1] "spotify:track:3FGiFUJRRp5RGikVrs6kig"

如何从列表中的每个响应中制作包含项目 spotify:track: 的 dataframe?

如何从列表的每个响应中制作一个包含项目 spotify:track: 的 dataframe? 例如:

Spotifytrackuri
1. "spotify:track:3gbBpTdY8lnQwqxNCcf795"
2. "spotify:track:3FGiFUJRRp5RGikVrs6kig"
3. "spotify:track:xxxxxxxxxxxxxxxxxxxxxx"
4. "spotify:track:xxxxxxxxxxxxxxxxxxxxxx"

请注意,对于此示例,我有 4 个响应。 但还会有更多。 因此,对于每个响应,必须从响应中删除项目 spotify: track: 并将其放置在一个数据框中。

我怎样才能归档这个结果?

@Bas,它适用于一些项目(比如说大约 10 个)。 对于 99 个元素的列表,我收到以下错误:

> lijstwijkuri <- lapply(lijstwijk, function(item) content(item, as="parsed")$tracks$items[[1]]$uri)
Error in content(item, as = "parsed")$tracks$items[[1]] : 
  subscript out of bounds

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM