我想知道是否可以将以下OpenFIGI API命令转换为python:
curl -v -X POST 'https://api.openfigi.com/v1/mapping' \
--header 'Content-Type: text/json' \
--data '[{"idType":"ID_WERTPAPIER","idValue":"851399","exchCode":"US"}]'
我尝试了以下内容:
import requests
data = {["idType":"ID_WERTPAPIER","idValue":"851399","exchCode":"US"]}
r=requests.post('https://api.openfigi.com/v1/mapping', headers={"Content-Type": "text/json"},data=data)
但是r得到了值#34;响应[400]"。根据介绍页面https://www.openfigi.com/api#introduction,这标识了"请求正文不是数组"的情景。我真的很陌生,任何建议都会有所帮助。
答案 0 :(得分:3)
首先api需要对象数组,而不是带数组的对象(甚至是无效的json),所以这是正确的:
data = [{"idType":"ID_WERTPAPIER","idValue":"851399","exchCode":"US"}]
第二 - api期望json,所以使用json参数,而不是数据
r=requests.post('https://api.openfigi.com/v1/mapping',
headers={"Content-Type": "text/json"},
json=data)