使用httr/jsonlite调用USNO REST API获月出月落时间遇日期格式错误
解决USNO API日期格式报错问题
问题出在手动拼接URL时的特殊字符编码:虽然你输入的日期格式是MM/DD/YYYY,但直接把带斜杠的日期拼进URL里,会被服务器错误解析。用httr的query参数传递参数,让包自动处理编码,就能解决这个问题:
library(httr) library(jsonlite) # 正确写法:用query参数传递日期和坐标 response <- GET( url = "https://aa.usno.navy.mil/api/rstt/oneday", query = list( date = "09/20/2005", coords = "47.60,-122.33" ) ) # 解析返回的JSON数据 result <- fromJSON(content(response, as = "text")) print(result)
另外检查代码里的字符串引号:你提供的代码里用了"(HTML转义引号),在R里应该换成普通的双引号"或者单引号',否则会导致语法错误。
如果还是报错,可以尝试把日期转成URL编码后的格式(09%2F20%2F2005),但用query参数是更稳妥的方式,因为httr会自动处理所有特殊字符的编码。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

