【问题标题】:GET api data using curl command使用 curl 命令获取 api 数据
【发布时间】:2022-07-07 00:08:21
【问题描述】:

我正在尝试使用 curl 从公共 api 获取一些数据:

curl --request GET 'https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial' \
--header 'X-Api-Key: x-api-‘key \
--data 'output_format=csv' \
> save_file.csv

如果我在终端中运行命令返回输出并且一切正常,但是如果我尝试添加一个额外的参数来以 .csv 格式下载结果,则会生成文件但里面的格式错了,我的意思是不是添加为表格格式而是更像是对象数组[{}, {}, {}]等等。

是否可以运行 curl 命令并获取 csv 格式的数据?

【问题讨论】:

    标签: javascript api curl get


    【解决方案1】:

    --data 是您将正文数据添加到 POST 请求的方式。您正在发出 GET 请求。

    您正在使用的网络服务的api documentation 表示:

    mode 可选响应格式。可能的值是 xml 和 html。如果不使用 mode 参数格式默认为 JSON。了解更多

    因此,要从服务器返回 JSON 以外的内容,您需要将 mode=something 放入查询字符串中,并且只有 XML 和 HTML 是选项。

    不是output_format

    它不会进入体内。

    CSV 不是一个选项。


    如果您想将该数据转换为 CSV 格式,则需要在本地对其进行转换。文档中描述的数据格式看起来不适合 CSV 描述的 2D 数据结构,因此您必须决定如何转换它。

    您已标记此,因此您可以将curl 的输出通过管道传输到您使用Node.js 运行的程序中,parses the JSON,按照您的喜好对其进行重组,然后使用类似papaparse 的模块将其转换为 JSON。

    【讨论】:

    • 好的,所以基本上我无法在单个 curl 命令中做到这一点:|
    • 好吧。是的。 curl 发出 HTTP 请求。您依赖于您提出请求的服务来执行您想要的请求。
    • 这是一个奇怪的 API,为什么 json 不是模式的有效值?但我在这里问错人了,除非你是 openwheatermap 开发者:P
    • @hanshenrik — 不知道。我会设计 json 并且没有什么是等价的,而不是没有任何东西作为唯一的值,意思是 JSON。
    【解决方案2】:

    usadropshop.com/thumbnail for the first National 出生和世界上最美丽和令人惊叹的风景https://www.rakuten.com/r/LEODIS20LINKSUA-233471841-1https://www.linkedin.com/psettings/group/14100452

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多