Невозможно получить доступ к данным из объекта json

Я сохранил структуру данных json в кадре данных с одним столбцом с именем json_data в R, поэтому мой текст json хранится в этом формате.

row 1)    { "results" : [ { "formatted_address" : "Sahibzada Ajit Singh Nagar, 
          Punjab, India", "types" : [ "route" ], "location" :"lat"31.1471305,"lng" 
          75.34121789999999 }, ]
row 2)     { "results" : [ { "formatted_address" : "SAS Nagar,  Chennai, India", 
       "types" : [ "route 2" ], "location" :"lat"30.67249,"lng" 23.988672537 ,}] 
row 3)   { "results" : [ { "formatted_address" : "Hind mata chowk, UP, India", 
       "types" : [ "route 4" ], "location" lat"48.973478983,"lng"64.982486763},] 
row 4)
row 5)
.
.
.
.row 1000)

Чего я хочу добиться, так это получить доступ из каждого отформатированного адреса строки, широты, долготы из местоположения и сохранить их в три разных столбца, чтобы

formatted_add                                       lat            lng
Sahibzada Ajit Singh Nagar,Punjab, India      31.1471305       75.34121789999999
SAS Nagar,  Chennai, India                    30.67249         23.988672537
Hind mata chowk, UP, India                    48.973478983     64.982486763

json_data_df — имя фрейма данных

я пытаюсь сделать

formatted_add=json_data_df$json_data$formatted_address
lat=json_data_df$json_data$formatted_address$geometry$location$lat
lng=json_data_df$json_data$formatted_address$geometry$location$lng

см. O/P dput(), который я вставил в образец строки, из этой строки я хочу получить доступ к первому вхождению "formatted_address" и его "lat","lng " в разделе местоположение. Но это не дает мне результата, каких-либо предложений о том, какие изменения следует внести. заранее спасибо

редактировать:

вывод (голова (json_data_df, 1))

O\P

    {
        "results": [{
            "address_components": [{
                "long_name": "Unnamed Road",
                "short_name": "Unnamed Road",
                "types": ["route"]
            }, {
                "long_name": "Sahibzada Ajit Singh Nagar",
                "short_name": "SAS Nagar",
                "types": ["administrative_area_level_2", "political"]
            }, {
                "long_name": "Punjab",
                "short_name": "PB",
                "types": ["administrative_area_level_1", "political"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }, {
                "long_name": "160003",
                "short_name": "160003",
                "types": ["postal_code"]
            }],
            "formatted_address": "Unnamed Road, Punjab 160003, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 30.6593213,
                        "lng": 76.7952105
                    },
                    "southwest": {
                        "lat": 30.6548837,
                        "lng": 76.7931289
                    }
                },
                "location": {
                    "lat": 30.6576094,
                    "lng": 76.794392
                },
                "location_type": "GEOMETRIC_CENTER",
                "viewport": {
                    "northeast": {
                        "lat": 30.6593213,
                        "lng": 76.79551868029151
                    },
                    "southwest": {
                        "lat": 30.6548837,
                        "lng": 76.7928207197085
                    }
                }
            },
            "place_id": "ChIJYWQws23rDzkRsqz31TNCwXg",
            "types": ["route"]
        }, {
            "address_components": [{
                "long_name": "Bhabat",
                "short_name": "Bhabat",
                "types": ["locality", "political"]
            }, {
                "long_name": "Sahibzada Ajit Singh Nagar",
                "short_name": "SAS Nagar",
                "types": ["administrative_area_level_2", "political"]
            }, {
                "long_name": "Punjab",
                "short_name": "PB",
                "types": ["administrative_area_level_1", "political"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "Bhabat, Punjab, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 30.67249,
                        "lng": 76.81895999999999
                    },
                    "southwest": {
                        "lat": 30.64508,
                        "lng": 76.79106999999999
                    }
                },
                "location": {
                    "lat": 30.6575248,
                    "lng": 76.8057776
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 30.67249,
                        "lng": 76.81895999999999
                    },
                    "southwest": {
                        "lat": 30.64508,
                        "lng": 76.79106999999999
                    }
                }
            },
            "place_id": "ChIJN3sGJEHrDzkRwGZ1GMXBa2Q",
            "types": ["locality", "political"]
        }, {
            "address_components": [{
                "long_name": "Chandigarh Airport Area",
                "short_name": "Chandigarh Airport Area",
                "types": ["political", "sublocality", "sublocality_level_1"]
            }, {
                "long_name": "Chandigarh",
                "short_name": "Chandigarh",
                "types": ["locality", "political"]
            }, {
                "long_name": "Chandigarh",
                "short_name": "CH",
                "types": ["administrative_area_level_1", "political"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "Chandigarh Airport Area, Chandigarh, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 30.696639,
                        "lng": 76.81389089999999
                    },
                    "southwest": {
                        "lat": 30.6568821,
                        "lng": 76.76542999999999
                    }
                },
                "location": {
                    "lat": 30.6783321,
                    "lng": 76.7884713
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 30.696639,
                        "lng": 76.81389089999999
                    },
                    "southwest": {
                        "lat": 30.6568821,
                        "lng": 76.76542999999999
                    }
                }
            },
            "place_id": "ChIJcb4-lILsDzkRJIQJTpsMm8w",
            "types": ["political", "sublocality", "sublocality_level_1"]
        }, {
            "address_components": [{
                "long_name": "160004",
                "short_name": "160004",
                "types": ["postal_code"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "160004, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 30.6832516,
                        "lng": 76.8121771
                    },
                    "southwest": {
                        "lat": 30.6447985,
                        "lng": 76.7639648
                    }
                },
                "location": {
                    "lat": 30.6582706,
                    "lng": 76.7855866
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 30.6832516,
                        "lng": 76.8121771
                    },
                    "southwest": {
                        "lat": 30.6447985,
                        "lng": 76.7639648
                    }
                }
            },
            "place_id": "ChIJf560w6fsDzkRXLKn0s52kHM",
            "types": ["postal_code"]
        }, {
            "address_components": [{
                "long_name": "Sahibzada Ajit Singh Nagar",
                "short_name": "SAS Nagar",
                "types": ["administrative_area_level_2", "political"]
            }, {
                "long_name": "Punjab",
                "short_name": "PB",
                "types": ["administrative_area_level_1", "political"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "Sahibzada Ajit Singh Nagar, Punjab, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 30.9369199,
                        "lng": 76.9439199
                    },
                    "southwest": {
                        "lat": 30.35902,
                        "lng": 76.52444009999999
                    }
                },
                "location": {
                    "lat": 30.6496486,
                    "lng": 76.7567368
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 30.9369199,
                        "lng": 76.9439199
                    },
                    "southwest": {
                        "lat": 30.35902,
                        "lng": 76.52444009999999
                    }
                }
            },
            "place_id": "ChIJOyhuuFPlDzkRzrRj0bvdZPw",
            "types": ["administrative_area_level_2", "political"]
        }, {
            "address_components": [{
                "long_name": "Punjab",
                "short_name": "PB",
                "types": ["administrative_area_level_1", "political"]
            }, {
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "Punjab, India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 32.4994008,
                        "lng": 76.92175809999999
                    },
                    "southwest": {
                        "lat": 29.537147,
                        "lng": 73.88057999999999
                    }
                },
                "location": {
                    "lat": 31.1471305,
                    "lng": 75.34121789999999
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 32.4994008,
                        "lng": 76.92175809999999
                    },
                    "southwest": {
                        "lat": 29.537147,
                        "lng": 73.88057999999999
                    }
                }
            },
            "place_id": "ChIJVXOeVqpkGTkRYYijAzEmvY8",
            "types": ["administrative_area_level_1", "political"]
        }, {
            "address_components": [{
                "long_name": "India",
                "short_name": "IN",
                "types": ["country", "political"]
            }],
            "formatted_address": "India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 35.5087008,
                        "lng": 97.39535869999999
                    },
                    "southwest": {
                        "lat": 6.4626999,
                        "lng": 68.1097
                    }
                },
                "location": {
                    "lat": 20.593684,
                    "lng": 78.96288
                },
                "location_type": "APPROXIMATE",
                "viewport": {
                    "northeast": {
                        "lat": 35.5087008,
                        "lng": 97.39498069999999
                    },
                    "southwest": {
                        "lat": 6.7535159,
                        "lng": 68.16288519999999
                    }
                }
            },
            "place_id": "ChIJkbeSa_BfYzARphNChaFPjNc",
            "types": ["country", "political"]
        }],
        "status": "OK"
    }

row 2)
      {    "results" : [       {          "address_components" : [             {                "long_name" : "Unnamed Road",                "short_name" : "Unnamed Road",                "types" : [ "route" ]             },             {                "long_name" : "Godown Area",                "short_name" : "Godown Area",                "types" : [ "neighborhood", "political" ]             },             {                "long_name" : "Chandigarh Airport Area",                "short_name" : "Chandigarh Airport Area",                "types" : [ "political", "sublocality", "sublocality_level_1" ]             },             {                "long_name" : "Chandigarh",                "short_name" : "Chandigarh",                "types" : [ "locality", "political" ]             },             {                "long_name" : "Sahibzada Ajit Singh Nagar",                "short_name" : "SAS Nagar",                "types" : [ "administrative_area_level_2", "political" ]             },             {                "long_name" : "Chandigarh",                "short_name" : "CH",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             },             {                "long_name" : "140604",                "short_name" : "140604",                "types" : [ "postal_code" ]             }          ],          "formatted_address" : "Unnamed Road, Godown Area, Chandigarh Airport Area, Chandigarh, 140604, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 30.6617314,                   "lng" : 76.81240459999999                },                "southwest" : {                   "lat" : 30.6611368,                   "lng" : 76.8107763                }             },             "location" : {                "lat" : 30.66141159999999,                "lng" : 76.8115756             },             "location_type" : "GEOMETRIC_CENTER",             "viewport" : {                "northeast" : {                   "lat" : 30.66278308029149,                   "lng" : 76.81293943029151                },                "southwest" : {                   "lat" : 30.66008511970849,                   "lng" : 76.81024146970849                }             }          },          "place_id" : "ChIJBf4l00XrDzkRhE9fwLK7DNw",          "types" : [ "route" ]       },       {          "address_components" : [             {                "long_name" : "Bhabat",                "short_name" : "Bhabat",                "types" : [ "locality", "political" ]             },             {                "long_name" : "Sahibzada Ajit Singh Nagar",                "short_name" : "SAS Nagar",                "types" : [ "administrative_area_level_2", "political" ]             },             {                "long_name" : "Punjab",                "short_name" : "PB",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "Bhabat, Punjab, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 30.67249,                   "lng" : 76.81895999999999                },                "southwest" : {                   "lat" : 30.64508,                   "lng" : 76.79106999999999                }             },             "location" : {                "lat" : 30.6575248,                "lng" : 76.8057776             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 30.67249,                   "lng" : 76.81895999999999                },                "southwest" : {                   "lat" : 30.64508,                   "lng" : 76.79106999999999                }             }          },          "place_id" : "ChIJN3sGJEHrDzkRwGZ1GMXBa2Q",          "types" : [ "locality", "political" ]       },       {          "address_components" : [             {                "long_name" : "Chandigarh Airport Area",                "short_name" : "Chandigarh Airport Area",                "types" : [ "political", "sublocality", "sublocality_level_1" ]             },             {                "long_name" : "Chandigarh",                "short_name" : "Chandigarh",                "types" : [ "locality", "political" ]             },             {                "long_name" : "Chandigarh",                "short_name" : "CH",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "Chandigarh Airport Area, Chandigarh, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 30.696639,                   "lng" : 76.81389089999999                },                "southwest" : {                   "lat" : 30.6568821,                   "lng" : 76.76542999999999                }             },             "location" : {                "lat" : 30.6783321,                "lng" : 76.7884713             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 30.696639,                   "lng" : 76.81389089999999                },                "southwest" : {                   "lat" : 30.6568821,                   "lng" : 76.76542999999999                }             }          },          "place_id" : "ChIJcb4-lILsDzkRJIQJTpsMm8w",          "types" : [ "political", "sublocality", "sublocality_level_1" ]       },       {          "address_components" : [             {                "long_name" : "140604",                "short_name" : "140604",                "types" : [ "postal_code" ]             },             {                "long_name" : "Punjab",                "short_name" : "PB",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "Punjab 140604, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 30.6698436,                   "lng" : 76.8210886                },                "southwest" : {                   "lat" : 30.6552941,                   "lng" : 76.80184109999999                }             },             "location" : {                "lat" : 30.6625018,                "lng" : 76.8129878             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 30.6698436,                   "lng" : 76.8210886                },                "southwest" : {                   "lat" : 30.6552941,                   "lng" : 76.80184109999999                }             }          },          "place_id" : "ChIJpzrfc1DrDzkRc_qbC2Hz3tc",          "types" : [ "postal_code" ]       },       {          "address_components" : [             {                "long_name" : "Sahibzada Ajit Singh Nagar",                "short_name" : "SAS Nagar",                "types" : [ "administrative_area_level_2", "political" ]             },             {                "long_name" : "Punjab",                "short_name" : "PB",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "Sahibzada Ajit Singh Nagar, Punjab, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 30.9369199,                   "lng" : 76.9439199                },                "southwest" : {                   "lat" : 30.35902,                   "lng" : 76.52444009999999                }             },             "location" : {                "lat" : 30.6496486,                "lng" : 76.7567368             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 30.9369199,                   "lng" : 76.9439199                },                "southwest" : {                   "lat" : 30.35902,                   "lng" : 76.52444009999999                }             }          },          "place_id" : "ChIJOyhuuFPlDzkRzrRj0bvdZPw",          "types" : [ "administrative_area_level_2", "political" ]       },       {          "address_components" : [             {                "long_name" : "Punjab",                "short_name" : "PB",                "types" : [ "administrative_area_level_1", "political" ]             },             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "Punjab, India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 32.4994008,                   "lng" : 76.92175809999999                },                "southwest" : {                   "lat" : 29.537147,                   "lng" : 73.88057999999999                }             },             "location" : {                "lat" : 31.1471305,                "lng" : 75.34121789999999             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 32.4994008,                   "lng" : 76.92175809999999                },                "southwest" : {                   "lat" : 29.537147,                   "lng" : 73.88057999999999                }             }          },          "place_id" : "ChIJVXOeVqpkGTkRYYijAzEmvY8",          "types" : [ "administrative_area_level_1", "political" ]       },       {          "address_components" : [             {                "long_name" : "India",                "short_name" : "IN",                "types" : [ "country", "political" ]             }          ],          "formatted_address" : "India",          "geometry" : {             "bounds" : {                "northeast" : {                   "lat" : 35.5087008,                   "lng" : 97.39535869999999                },                "southwest" : {                   "lat" : 6.4626999,                   "lng" : 68.1097                }             },             "location" : {                "lat" : 20.593684,                "lng" : 78.96288             },             "location_type" : "APPROXIMATE",             "viewport" : {                "northeast" : {                   "lat" : 35.5087008,                   "lng" : 97.39498069999999                },                "southwest" : {                   "lat" : 6.7535159,                   "lng" : 68.16288519999999                }             }          },          "place_id" : "ChIJkbeSa_BfYzARphNChaFPjNc",          "types" : [ "country", "political" ]       }    ],    "status" : "OK" }

person deepesh    schedule 01.06.2017    source источник
comment
Можете ли вы поделиться некоторыми данными, используя dput(). При чтении/записи в файл json используйте simplifyVector = TRUE, чтобы получить читаемый data.frame   -  person timfaber    schedule 01.06.2017
comment
@timfaber воспроизвел только одну запись фрейма данных... потому что, как вы можете видеть, это довольно большой json   -  person deepesh    schedule 01.06.2017
comment
чтобы уточнить: у вас есть объект JSON для каждой строки вашего data.frame?   -  person SymbolixAU    schedule 03.06.2017
comment
Да, у меня есть объект JSON для каждой строки моего фрейма данных   -  person deepesh    schedule 03.06.2017


Ответы (2)


ОК, после уточнения у вас есть строка JSON для каждой строки data.frame

Чтобы воссоздать данные, я беру предоставленную вами единственную строку JSON (строку) и помещаю ее в две строки data.frame.

Поэтому для доступа к данным нужно разбирать каждую строку data.frame по отдельности

Однако в своем вопросе вы запрашиваете «первое вхождение formatted_address под местоположением». В строке данных, которые вы указали, есть семь разных местоположений, которые вы можете увидеть по количеству значений place_id, и есть только одно formatted_address на place_id. Поэтому спрашивать первое вхождение не имеет смысла, поскольку существует только одно.

library(jsonlite)

js <- '{
                 "results": [{
                       "address_components": [{
                       "long_name": "Unnamed Road",
                       "short_name": "Unnamed Road",
                       "types": ["route"]
                       }, {
                       .... <i've omitted the rest of the text> ...
                       },
                       "place_id": "ChIJkbeSa_BfYzARphNChaFPjNc",
                        "types": ["country", "political"]
                       }],
                        "status": "OK"
                       }'

json_data_df <- data.frame(json_data = c(js, js))

## if parsing a row individually you would do
# json_result <- fromJSON(as.character(json_data_df[1, "json_data"]))

## as you're parsing each row of the data.frame, you can use whatever looping 
## method you like

## you can get all the data out of the JSON and create a list obect of everything
lst <- lapply(1:nrow(json_data_df), function(x){
  fromJSON(as.character(json_data_df[x, 'json_data']))
})


## or you can subset it within the loop to just get the bits you want
lst <- lapply(1:nrow(json_data_df), function(x){
  js <- fromJSON(as.character(json_data_df[x, 'json_data']))
  data.frame(
    place_id = js$results$place_id,
    formatted_address = js$results$formatted_address,
    lat = js$results$geometry$location$lat,
    lng = js$results$geometry$location$lng
    )
})

lst
# [[1]]
#                      place_id                          formatted_address      lat      lng
# 1 ChIJYWQws23rDzkRsqz31TNCwXg         Unnamed Road, Punjab 160003, India 30.65761 76.79439
# 2 ChIJN3sGJEHrDzkRwGZ1GMXBa2Q                      Bhabat, Punjab, India 30.65752 76.80578
# 3 ChIJcb4-lILsDzkRJIQJTpsMm8w Chandigarh Airport Area, Chandigarh, India 30.67833 76.78847
# 4 ChIJf560w6fsDzkRXLKn0s52kHM                              160004, India 30.65827 76.78559
# 5 ChIJOyhuuFPlDzkRzrRj0bvdZPw  Sahibzada Ajit Singh Nagar, Punjab, India 30.64965 76.75674
# 6 ChIJVXOeVqpkGTkRYYijAzEmvY8                              Punjab, India 31.14713 75.34122
# 7 ChIJkbeSa_BfYzARphNChaFPjNc                                      India 20.59368 78.96288
# 
# [[2]]
#                      place_id                          formatted_address      lat      lng
# 1 ChIJYWQws23rDzkRsqz31TNCwXg         Unnamed Road, Punjab 160003, India 30.65761 76.79439
# 2 ChIJN3sGJEHrDzkRwGZ1GMXBa2Q                      Bhabat, Punjab, India 30.65752 76.80578
# 3 ChIJcb4-lILsDzkRJIQJTpsMm8w Chandigarh Airport Area, Chandigarh, India 30.67833 76.78847
# 4 ChIJf560w6fsDzkRXLKn0s52kHM                              160004, India 30.65827 76.78559
# 5 ChIJOyhuuFPlDzkRzrRj0bvdZPw  Sahibzada Ajit Singh Nagar, Punjab, India 30.64965 76.75674
# 6 ChIJVXOeVqpkGTkRYYijAzEmvY8                              Punjab, India 31.14713 75.34122
# 7 ChIJkbeSa_BfYzARphNChaFPjNc                                      India 20.59368 78.96288

Согласно комментариям - чтобы получить доступ только к первой записи для каждого объекта JSON, вы можете просто подмножить первый элемент в lapply

## or you can subset it within the loop to just get the bits you want
lst <- lapply(1:nrow(json_data_df), function(x){
  js <- fromJSON(as.character(json_data_df[x, 'json_data']))
  data.frame(
    place_id = js$results$place_id[1],
    formatted_address = js$results$formatted_address[1],
    lat = js$results$geometry$location$lat[1],
    lng = js$results$geometry$location$lng[1]
  )
})
lst

# [[1]]
#                      place_id                  formatted_address      lat      lng
# 1 ChIJYWQws23rDzkRsqz31TNCwXg Unnamed Road, Punjab 160003, India 30.65761 76.79439

# [[2]]
#                      place_id                  formatted_address      lat      lng
# 1 ChIJYWQws23rDzkRsqz31TNCwXg Unnamed Road, Punjab 160003, India 30.65761 76.79439
person SymbolixAU    schedule 02.06.2017
comment
ваш первый подход (чтение данных json в виде кадра данных) отлично работает только с одной записью, если я запускаю его для всего набора данных, это дает мне ошибку Ошибка: ошибка синтаксического анализа: конечный мусор } ], статус: ОК } { результаты: [ { (правильно здесь) ------^ - person deepesh; 02.06.2017
comment
Следующее, что я прошу вас снова просмотреть мой пост, потому что мне нужна запись о первом появлении formatted_address и его lat, и lng. - person deepesh; 02.06.2017
comment
И последнее, если я воспользуюсь вашим следующим подходом, т.е. прочитав данные через файл .json, выполнив это ---> json_data$results$formatted_address.. выдает ошибку :: Ошибка в json_data$results: оператор $ недействителен для атомарных векторов :: класс (json_data) = символ - person deepesh; 02.06.2017
comment
1. Похоже, ваш JSON неправильно отформатирован. 2. В вашем вопросе нет упоминания о «первом появлении» - может быть, вам нужно отредактировать его, чтобы уточнить ваши требования? 3. На предоставленных вами данных эти методы работают. Чтобы точно увидеть свою ошибку, вам нужно сгенерировать примерный набор данных, демонстрирующий ваши ошибки. Наконец, данные поступают из Google Places API? возможно, есть другие способы получить данные - person SymbolixAU; 02.06.2017
comment
Дело в том, что все эти семь разных местоположений принадлежат одной строке фрейма данных; и вторая строка фрейма данных состоит из семи других местоположений. вот почему я сказал первое появление отформатированного адреса. Как вы можете видеть примерную строку 2), она содержит семь разных отформатированных адресов, из которых я хочу получить доступ к их первому вхождению, а также к его широте и долготе в разделе геометрия --›местоположение. - person deepesh; 03.06.2017
comment
json_data_df ‹- data.frame(json_data = c(js, js)) что такое js здесь - person deepesh; 03.06.2017
comment
Давайте продолжим это обсуждение в чате. - person deepesh; 03.06.2017
comment
Наконец, он работал с этим кодом. js$results$place_id[1], formatted_address = js$results$formatted_address[1], lat = js$results$geometry$location$lat[1], lng = js$results$geometry$location$lng[1] ) })................................. Большое спасибо... Это действительно спасло мой день.. : ) Спасибо за попытку!!! - person deepesh; 03.06.2017

Вот одна из возможностей:

library(rjson)

json_data <- fromJSON(file = json_file)
formatted_add <- lapply(json_data$results, function(x) x$formatted_add)
lat <- lapply(json_data$results, function(x) x$geometry$location$lat)
lng <- lapply(json_data$results, function(x) x$geometry$location$lng)

data <- cbind(formatted_add, lat, lng)

Надеюсь, это то, что вам нужно.

person jkrainer    schedule 01.06.2017
comment
ваш код выполняется, но в выходном объекте ничего нет, он показывает список 0. Почему так - person deepesh; 02.06.2017
comment
вы добавили путь к вашему json_file? json_file <- "path/to/your/file.json" - person jkrainer; 02.06.2017
comment
Да, я добавил путь к моему файлу .json - person deepesh; 02.06.2017
comment
lapply(json_data$results, function(x) x) дает вам какой-либо результат? Я скопировал ваш вывод dput(head(json_data_df,1)) в файл, так что, может быть, ваша фактическая общая структура имеет другой уровень? - person jkrainer; 02.06.2017
comment
Нет, это все еще дает мне список 0 - person deepesh; 02.06.2017
comment
к чему приводит names(json_data)? Команда fromJSON сработала? - person jkrainer; 02.06.2017
comment
имена (json_data) дают мне NULL, и команда fromJSON используется для чтения файла json из пути - person deepesh; 02.06.2017
comment
НЕТ... включение этих двух библиотек не помогло - person deepesh; 02.06.2017