从 R 中的 JSON Google API 请求中提取行



我正在根据谷歌地图 API 的搜索请求从银行提取数据。 在某些情况下,它拉动了不止一家银行(因为有些银行可能靠得很近)。 如何提取返回的每个单独的 JSON 对象(因为我需要获取位置 ID),以便我可以执行第二个 api 拉取(基于位置 ID)以搜索有关每个银行的更多详细信息? 这是我的代码:

require(jsonlite)
require(utils)

plcUrl <- "https://maps.googleapis.com/maps/api/place/nearbysearch/json?"
key <- "myKEY"
location <- paste0("41.0272, -81.51345")
address <- "XXXXXXXXXXXXXXXXX"
type <- "bank"
radius <- "500"
name = "XXXXX"
strurl <- as.character(paste(plcUrl ,
                             "&location=",location,
                             "&address=",address,
                             #"&name=",name,
                             "&radius=",radius,
                             "&type=",type,
                             "&key=",key,
                             sep=""))
setInternet2(TRUE)
rd <- fromJSON(URLencode(strurl))
rd$results$place_id

从googleway v2.4开始,我添加了访问Google API查询特定元素的方法。

library(googleway)
key <- "your_api_key"
## search places
res <- google_places(location = c(41.0272, -81.51345),
                    key = key,
                    place_type = "bank",
                    radius = 500)

## get the place_id values using the `place` method to extract the ids
place(res)
# [1] "ChIJDe7R2HQqMYgRvqoszlV6YTA" "ChIJDQwLUXMqMYgR-3Nb2KFhZZ0"
## query the details
details <- google_place_details(place_id = place(res)[1], key = key)
details$result$opening_hours
# $open_now
# [1] FALSE
# 
# $periods
#   close.day close.time open.day open.time
# 1         1       1600        1      0900
# 2         2       1600        2      0900
# 3         3       1600        3      0900
# 4         4       1600        4      0900
# 5         5       1800        5      0900
# 6         6       1300        6      0900
# 
# $weekday_text
# [1] "Monday: 9:00 AM – 4:00 PM"    "Tuesday: 9:00 AM – 4:00 PM"   "Wednesday: 9:00 AM – 4:00 PM" "Thursday: 9:00 AM – 4:00 PM" 
# [5] "Friday: 9:00 AM – 6:00 PM"    "Saturday: 9:00 AM – 1:00 PM"  "Sunday: Closed"

最新更新