如何在suds参数中为请求设置属性?

2024-09-28 18:59:11 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是请求和平:

<ContinuousMove xmlns="http://www.onvif.org/ver20/ptz/wsdl">
    <ProfileToken>0</ProfileToken>
    <Velocity>
        <PanTilt x="-0.5" y="0" xmlns="http://www.onvif.org/ver10/schema"/>
    </Velocity>
</ContinuousMove>

这个请求被称为类似self._client.service.ContinuousMove(0, params),其中params类似于{}。主要的问题是我不知道如何向请求添加属性,而不是值。对于对象,它将抛出“找不到类型”的错误,对于元组将生成以下xml:

^{pr2}$

Tags: orghttpschemawwwparamswsdlonvifvelocity
1条回答
网友
1楼 · 发布于 2024-09-28 18:59:11

您可以使用suds.client.Client.factory.create来创建参数。在

下面是我曾经写过的一个例子:

query_param = client.factory.create("QueryCriteriaBaseOfMyTaskCriteria")

pagination_model = client.factory.create("PaginationModel")
pagination_model.PageSize = 5000
query_param.PagingInfo = pagination_model

task_criteria = client.factory.create("MyTaskCriteria")
task_criteria.LoginId = user
task_criteria.OriginatorLoginId = client.factory.create("ArrayOfInt")
task_criteria.OriginatorLoginId.int.append(int(APPLICANT))
task_criteria.ProcInstId = client.factory.create("ArrayOfInt")
if instId is not None:
    task_criteria.ProcInstId.int.append(instId)
task_criteria.ProcessCode = client.factory.create("ArrayOfString")
task_criteria.ProcessCode.string.append(PROCESSCODE)
task_criteria.Folio = ""
task_criteria.TaskStartDate = client.factory.create("DatePeriodModel")
task_criteria.ProcessStartDate = client.factory.create("DatePeriodModel")
query_param.QueryCriteria = task_criteria
ret = client.service.GetTaskList(query_param,apiKey)

相关问题 更多 >