将curl转换为python

时间:2016-04-12 20:38:35

标签: python curl

我想知道是否可以将以下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,这标识了"请求正文不是数组"的情景。我真的很陌生,任何建议都会有所帮助。

1 个答案:

答案 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)