我有一个代码,可读取数据框第一列的每一行,访问网站,然后下载每位副手的照片。但这不能正常工作,因为有些代表还没有照片。
这就是为什么我的代码中断并停止工作的原因。我尝试使用“ next”和if子句,但仍然无法正常工作。因此,一个朋友建议我使用tryCatch()。我在网上找不到足够的信息,并且代码仍然无法正常工作。
文件在这里: https://gist.github.com/gabrielacaesar/940f3ef14eaf29d18c3780a66053bbee
deputados <- fread("dep-legislatura56-14jan2019.csv")
i <- 1
while(i <= 514) {
this.could.go.wrong <- tryCatch(
attemptsomething(),
error=function(e) next
)
url <- deputados$uri[i]
api_content <- rawToChar(GET(url)$content)
pessoa_info <- jsonlite::fromJSON(api_content)
pessoa_foto <- pessoa_info$dados$ultimoStatus$urlFoto
download.file(pessoa_foto, basename(pessoa_foto), mode = "wb")
Sys.sleep(0.5)
i <- i + 1
}
答案 0 :(得分:3)
这是使用purrr
的解决方案:
library(purrr)
download_picture <- function(url){
api_content <- rawToChar(httr::GET(url)$content)
pessoa_info <- jsonlite::fromJSON(api_content)
pessoa_foto <- pessoa_info$dados$ultimoStatus$urlFoto
download.file(pessoa_foto, basename(pessoa_foto), mode = "wb")
}
walk(deputados$uri, possibly(download_picture, NULL))
答案 1 :(得分:1)
将Private Sub ComboBox1_Change()
If ComboBox1.Text <> "Europe" Then
MsgBox "The Analysis Selected is wrong"
End If
End Sub
简单地包装在可能引起错误的行上,并使其在 error 块上返回tryCatch
或NULL
:
NA