bugfix> python > 投稿

Qualtricsで行った調査からデータをダウンロードしています。 Python 3サンプルコード(https://api.qualtrics.com/docs/response-exports)そして、それを中心に私のコードに基づいています。

ダウンロードが成功した後、ユーザーが選択できるオプションのリストを提供する質問が数字としてダウンロードされていることに気付きました(選択した回答のインデックスが疑われます)。

答えは、データを異なる方法でダウンロードするためにいくつかのパラメーターを入力するという単純なものであると信じていますが、QualtricのAPIドキュメントで見つけることができないようです。

これは、このプログラムを使用するとデータがどのように見えるかです

これは私がそれが見えるようにしたいものです

API資格情報が変更されたコードを次に示します。

import shutil
import os
import requests
import zipfile
import json
import io
# Setting user Parameters
apiToken = "myKey"
surveyId = "mySurveyID"
fileFormat = "csv"
dataCenter = "az1" 
# Setting static parameters
requestCheckProgress = 0
progressStatus = "in progress"
baseUrl = "https://{0}.qualtrics.com/API/v3/responseexports/".format(dataCenter)
headers = {
    "content-type": "application/json",
    "x-api-token": apiToken,
    }
# Step 1: Creating Data Export
downloadRequestUrl = baseUrl
downloadRequestPayload = '{"format":"' + fileFormat + '","surveyId":"' + surveyId + '"}'
downloadRequestResponse = requests.request("POST", downloadRequestUrl, data=downloadRequestPayload, headers=headers)
progressId = downloadRequestResponse.json()["result"]["id"]
print(downloadRequestResponse.text)
#print (requests)
# Step 2: Checking on Data Export Progress and waiting until export is ready
while requestCheckProgress < 100 and progressStatus is not "complete":
    requestCheckUrl = baseUrl + progressId
    requestCheckResponse = requests.request("GET", requestCheckUrl, headers=headers)
    requestCheckProgress = requestCheckResponse.json()["result"]["percentComplete"]
    print("Download is " + str(requestCheckProgress) + " complete")
# Step 3: Downloading file
requestDownloadUrl = baseUrl + progressId + '/file'
requestDownload = requests.request("GET", requestDownloadUrl, headers=headers, stream=True)
# Step 4: Unzipping the file
zipfile.ZipFile(io.BytesIO(requestDownload.content)).extractall("MyQualtricsDownload")
# Step 5: Move the file out of the folder and place it in the working directory --> change the paths to the appropiate paths for the server
shutil.move( "/Users/Abram/Documents/PCC/MyQualtricsDownload/Mindshare English v21.csv", "/Users/Abram/Documents/PCC/Mindshare English v21.csv")
os.rmdir("/Users/Abram/Documents/PCC/MyQualtricsDownload/")
print('Complete')

ありがとう:)

回答 2 件
  • 最後にそれを理解しました。はい、useLabelsパラメーターを追加する必要がありましたが、上記で提供したコードを使用するだけでは十分ではありませんでした。何らかの理由でJSONがそれを受け入れない場合、ブール型のように見える文字列だけでなく、JSONに型キャストするにはブール型が必要だと思います。だから私は辞書を作成し、paramsをロードし、辞書でJSON.dumps()を使用しましたが、それは魅力のように機能しました。これがラベル付きのデータを必要とする他の誰にも役立つことを願っています。

    useLabels = True
    dictionaryPayload = {'format': fileFormat, 'surveyId': surveyId, 'useLabels': useLabels}
    downloadRequestPayload = json.dumps(dictionaryPayload)
    
    

  • useLabelsパラメーターをtrueに設定します:https://api.qualtrics.com/docs/create-response-export

あなたの答え