python - NOAA Weather REST API 在使用 curl 请求时导致错误

标签 python shell rest curl noaa

我正在尝试使用 NOAA 的气候数据在线 REST Web 服务 (http://www.ncdc.noaa.gov/cdo-web/webservices/v2#data) 编写一个 python 程序。但是,我在请求响应中遇到了错误。当尝试从命令行使用 curl 请求时,我输入:

curl -H "token:<MYTOKEN>" http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&locationid=ZIP:22405&startdate=1999-10-05&enddate=1999-10-25

它返回这个响应:

[1] 24322
[2] 24323
[3] 24324
phil@philUbu:~$ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><response><statusCode>400</statusCode><userMessage>There was an error with the request.</userMessage><developerMessage>Required parameter 'startdate' is missing.</developerMessage></response>
[1]   Done                    curl -H "token:..." http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND
[2]-  Done                    locationid=ZIP:22405
[3]+  Done                    startdate=1999-10-05

出于某种原因,它认为我遗漏了开始日期,但我已经包含了它,而且根据文档,它的格式是正确的。有人知道问题出在哪里吗?

最佳答案

url 中的 & 符号可能正在被您的 shell 解析。在它周围加上单引号:

 curl -H "token:<MYTOKEN>" 'http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&locationid=ZIP:22405&startdate=1999-10-05&enddate=1999-10-25'

关于python - NOAA Weather REST API 在使用 curl 请求时导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29927841/

相关文章:

python - 将唯一字符串分组到列中并对单独的列值执行函数

python - 使用循环更新 Python 数据框的特定行和列

python - 如何在 App Engine 上使用 Python 加载 .html 页面

bash - 读取文件的shell脚本

android - 相当于 iOS RestKit for Android

javascript - Node.js 应用程序不提供没有根路径的静态网页

python - Django 表单字段不会被 POST 数据填充

shell - 设置hadoop用户通过oozie shell操作启动spark-submit

linux - 用换行符替换空格,特殊字符包裹的空格除外

node.js - 如何在 Promise.all 中将 URL 中的数组作为参数传递