【问题标题】:How to use the zillow api with ZillowR如何在 ZillowR 中使用 zillow api
【发布时间】:2019-07-04 21:22:10
【问题描述】:

我想从 Zillow API 访问 GetDeepSearchResults 信息。

我的代码:

library(ZillowR)
zapi_key = getOption('Myapikey')
GetDeepSearchResults(
    address = '600 S. Quail Ct.',
    zipcode = '67114',
    rentzestimate = FALSE,
    api_key = zapi_key
)

错误:

Error in GetDeepSearchResults(address = "600 S. Quail Ct.", zipcode = "67114",  : 
  unused arguments (zipcode = "67114", api_key = zapi_key)

为什么会出现这个错误?我该怎么做才能解决这个问题?


编辑:我根据cmets改了代码,得到了这个:

我的代码:

library(ZillowR)
zapi_key = getOption('myapikey')
GetDeepSearchResults(
    address = '600 S. Quail Ct.',
    citystatezip = '67114',
    rentzestimate = FALSE,
    zws_id = 'myapikey',
    url = "http://www.zillow.com/webservice/GetDeepSearchResults.htm"
)

输出:

$request
$request$address
NULL

$request$citystatezip
NULL

$message
$message$text
[1] "Error: invalid or missing ZWSID parameter"

$message$code
[1] "2"

$response
NULL

我该如何解决这个问题?

【问题讨论】:

  • 根据documentationGetDeepSearchResults只接受以下参数:addresscitystateziprentzestimatezws_idurl
  • 嗨,Markus,我更改了代码,但仍然出现错误:

标签: r api zillow


【解决方案1】:

未使用的参数错误在您传递参数时很典型,这些参数不是函数的一部分。所以 R 不知道如何处理这些并返回错误。可以通过?GetDeepSearchResults查看函数的documentation

这显示了你的用法:

GetDeepSearchResults(address = NULL, citystatezip = NULL,
  rentzestimate = FALSE, zws_id = getOption("ZillowR-zws_id"),
  url = "http://www.zillow.com/webservice/GetDeepSearchResults.htm")

要进行这项工作,您必须先设置您的 id(您可以在 https://www.zillow.com/howto/api/APIOverview.htm 上创建一个 id):

set_zillow_web_service_id("youractualkey")

所以你的函数没有参数zipcodeapi_key。让我们将您的论点更改为现有的一些:

    GetDeepSearchResults(address='600 S. Quail Ct.', citystatezip ='67114',
                         rentzestimate=FALSE)

你肯定知道我没有使用你的api_key。这是因为 default:zws_id = getOption("ZillowR-zws_id") 调用了您刚刚使用 set_zillow_web_service_id() 命令设置的全局 'ZillowR-zws_id'。因此无需更改默认值。但是当你使用 zillow 中的zws_id ="youractualkey" 时,你可以跳过这个

我创建了一个随机帐户以进行验证。这给了我输出:

$request
$request$address
NULL

$request$citystatezip
NULL


$message
$message$text
[1] "Error: this account is not authorized to execute this API call"

$message$code
[1] "6"


$response
NULL

所以我可以成功联系服务器并且我的密钥被识别。账号权限与R无关,需要在网站上设置。

【讨论】:

  • 嗨@mischva11 我能够根据您的上述建议获得输出,输出格式为:3302417263.0 浴室> 4卧室>。但是,我想写这个。当我做同样的事情时,我得到的错误是 as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) 中的错误:无法强制类 'c("XMLNode", "RXMLAbstractNode", "XMLAbstractNode", "oldClass"' 到 data.frame 另外:有 33 个警告(使用 warnings() 来查看)
  • @bababoo 我无法重现这个,因为我目前无法加载数据。我无法更改我的权限,网站已关闭。试试data.frame(unlist(data))。 (数据是你的对象)你的错误信息很清楚,你有一些东西,不能转换成数据框。在大多数情况下,您可以使用 data$xxx 或 data[[1]] 之类的内容提取值。尝试从类中提取数据,然后将其保存为数据框
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多