通过Python从cvent提取数据

时间:2019-11-20 19:06:55

标签: c# python pandas soap

我真的需要通过python从cvent访问数据。具体而言,cvent利用SOAP。我已经在cvent GUI中为特定事件创建了自定义报告。现在,我想调用事件数据并在pandas数据框中进行渲染。 developers.cvent.com仅提供C#代码片段...您猜对了,我一无所知。

非常感谢您提前提供指导!

1 个答案:

答案 0 :(得分:1)

我最近使用Python zeep软件包进行了此操作。这是一个例子。

from datetime import datetime
from zeep import Client

#set account, user, password...
wsdl = 'https://api.cvent.com/soap/V200611.ASMX?WSDL'
client = Client(wsdl)
login_result = client.service.Login(account, user, password)
client.set_default_soapheaders({'CventSessionHeader': login_result.CventSessionHeader})

object_type = client.get_type("ns1:CvObjectType")('Event')
startdate = datetime(2019, 11, 20)
enddate = datetime(2019, 11, 21)
ids = client.service.GetUpdated(object_type, startdate, enddate).body.GetUpdatedResult.Id
objects = client.service.Retrieve(ObjectType=object_type, Ids=client.get_type("ns1:IdArray")(ids))

注意,使用“检索”服务时声明参数名称很重要。我花了一些时间才弄清楚。

Zeep将以json格式返回数据对象,这是一种更好的数据处理方式。 zeep库中有一些选项可以更改返回格式。