首页 > 解决方案 > 使用 curl 命令下载日期范围的 API

问题描述

我正在尝试从 FINRA 下载空头股票,我只能下载特定日期,如下所示。curl -L -d "{ "compareFilters": [ { "compareType": "EQUAL", "fieldName": "结算日期", **"fieldValue": " 2018-06-15"** } ] ,"limit" :5 } " -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://api.finra.org/data/group/otcMarket/name/EquityShortInterest

但我正在尝试下载特定日期范围的数据,例如开始:2018-06-15,结束:2018-06-14。所以,我在字段值中尝试了以下代码。

curl -L -d "{ "compareFilters": [ { "compareType": "EQUAL", "fieldName": "结算日期", "fieldValue": ">2018-06-01 00:00:00&&<=2018-07 -01" } ] } " -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://api.finra.org/data/group/otcMarket/name/EquityShortInterest

然后,我将其转换为 json 格式以在 python 中运行。当我运行具有如下日期范围的 json 格式时;

jsonout = response.json()

我收到了这个错误:

{'statusCode': 400, 'statusDescription': 'Bad Request', 'requestId': 'ab7af2fe-9189-4619-b0ca-ee368fb6e91d', 'message': '无法解析请求正文。'}

如果有人可以帮助我,我将不胜感激,因为我对 curl 或 json 不太熟悉,而且编码不是我的职业生涯,因为我来自会计。

这是我转换的 json 格式。
导入请求

headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', }

数据= {'{“compareFilters”:[{“compareType”:“EQUAL”,“fieldName”:“结算日期”,“fieldValue”:>2018-06-01 00:00:00':'','< ': '2018-07-01" } ] }' }

response = requests.post('https://api.finra.org/data/group/otcMarket/name/EquityShortInterest', headers=headers, data=data)

谢谢

标签: pythonjsonapicurl

解决方案


你可以试试:

curl -L -d '{ "compareFilters": [ { "compareType": "EQUAL", "fieldName": " settlementDate", "fieldValue": "2018-09-14 00:00:00" } ] } ' -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://api.finra.org/data/group/otcMarket/name/EquityShortInterest

如果使用curl,建议您手动处理开始时间和结束时间。


推荐阅读