希望连接到Gooddata API并通过python中的API导出报告。 The documentation有点令人困惑。

我已经定义了我的gooddata实例的登录名:

from urllib2 import Request, urlopen
import json
import requests

def login_gooddata(my_email, my_password):
    url = 'https://secure.gooddata.com/gdc/account/login'

    values = {
        "postUserLogin": {
            "login": my_email,
            "password": my_password,
            "remember": 0,
            "verify_level": 0
        }
    }

    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    encoded_values = json.dumps(values)
    #request = Request(url, data=encoded_values, headers=headers)
    r = requests.post(url, data=encoded_values)
    return r


成功登录后,返回200响应。

鉴于gooddata网站提供的有关连接API的文档,我正在尝试导出原始项目文件。

我设置了项目和对象ID:

project_id = 'asibfakuyebkbhdbfaisdf'
object_id = '87234760'


values = {
    "report_req": {
    "reportDefinition": "/gdc/md/"+ project_id + "/obj/" + object_id
    }
  }


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

url = 'https://secure.gooddata.com/gdc/app/projects/' + project_id + '/execute/raw/'

r = requests.post(url, data=json.dumps(values), headers=headers)

request = Request(url, data=json.dumps(values), headers=headers)

response_body = urlopen(requests).read()
print response_body


我使用r = requests.post(url, data=encoded_valuesrequest = Request(url, data=encoded_values, headers=headers)玩耍。仍然收到错误。我不确定如何解决下一步问题。

遵循文档中所述的有关连接API的指示:

python - 导出gooddata报告python-LMLPHP

最佳答案

您需要从一个记住登录名中cookie的“会话”中执行所有HTTP请求:执行一次s = requests.Session(),然后使用s.post而不是requests.post

有关更多信息,请参见https://stackoverflow.com/a/31571805/3407728

09-30 14:32