我试图使用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格式获取数据?
发布于 2022-03-21 11:33:03
--data
是如何将正文数据添加到POST请求中的。你提出了一个GET请求。
您正在使用的are服务的api文档如下:
模式可选响应格式。可能的值是xml和html。如果不使用模式参数,默认情况下格式是JSON。了解更多
因此,要从服务器返回JSON以外的内容,需要将mode=something
放在查询字符串中,只有XML和HTML是选项。
这不是output_format
。
它不会进入身体。
CSV不是一种选择。
如果要将数据转换为CSV格式,则需要在本地进行转换。文档中描述的数据格式看起来并不适合CSV描述的2D数据结构,因此您必须就如何转换它做出决定。
您已经标记了这个javascript,这样您就可以将curl
的输出输送到一个使用Node.js运行的程序中,这个解析JSON可以根据需要对其进行重构,然后使用像帕帕帕这样的模块将其转换为JSON。
https://stackoverflow.com/questions/71556828
复制相似问题