Qualtrics 进口调查 - Python cURL 的实施

Qualtrics Import Survey - Python implementation of cURL

我正在尝试编写一个函数,使用他们的 V3 api 将调查导入 qualtrics。他们在文档中给出了以下内容

curl -H 'X-API-TOKEN: yourapitoken' \
-F 'name=Test' \
-F 'file=@/path/to/MySurvey.qsf;type=application/vnd.qualtrics.survey.qsf' \
  'https://yourdatacenterid.qualtrics.com/API/v3/surveys'

我正在尝试使用请求库在 python 中实现它。

我不太确定如何将 'file=@/path/to/MySurvey.qsf;type=application/vnd.qualtrics.survey.qsf' 传递给 requests.get()

当前设置:

headers = {'X-API-TOKEN':'xxxxxxxx'}
base_url = 'http://coN.qualtrics.com/API/v3/surveys/'
files = [
       ('name','New Survey'),
       ('file', ......),
       ]
test = requests.get(base_url, headers, files)

我应该用什么替换 ..... 才能让它正常工作?

Qualtrics API 文档:https://api.qualtrics.com/docs/import-survey-1

首先,我认为你应该发送一个 post 请求。
然后你需要 data 作为 post 数据,files 作为文件。

base_url = 'http://coN.qualtrics.com/API/v3/surveys/'
headers = {'X-API-TOKEN':'xxxxxxxx'}
data = {'name':'New Survey'}
files = {'file':('File Name', open('File Path', 'rb'), 'application/vnd.qualtrics.survey.qsf') }
test = requests.post(base_url, headers=headers, data=data, files=files)

print(test.status_code)
print(test.json())

files 字典中, 'File Name' 是文件名,后面是文件对象,然后是 'content_type' 。您可以在 docs

中找到更多信息