googleds python模块如何创建类实例

2024-10-03 21:24:16 发布

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

我使用的是python2.7和googledfpapithon模块(googledfpapi-4.4.0)。在

doubleclick for publishers文档(https://developers.google.com/doubleclick-publishers/docs/rel_notes)描述了像CustomTargetingValue这样的“类型”(也称为类)。我想创建此类类的新实例,以便填充它们并调用API可访问的方法,如createCustomTargetingValues()。在

我希望通过使用类名和“call”方法创建新实例。在

newVal = CustomTargetingValue()

。。。但这会产生一个名称错误

^{pr2}$

我尝试过使用dir()、vars()和inspect进行挖掘,但是我找不到一种方法来限定名称,例如。googleads.CustomTargetValue, suds.sudsobject.CustomTargetingValue. 在

作为解决方法,我可以使用getCustomTargetingValuesByStatement()之类的DFP查询返回所需类型的现有对象,使用“type”获取其类,然后使用call方法

newVal=type(existingVal)()

我同样可以使用copy模块来复制对象,但这两种方式看起来都像黑客。在

我显然忽略了一些显而易见的东西——正确的方法是什么?在


Tags: 模块对象实例方法名称类型fortype
1条回答
网友
1楼 · 发布于 2024-10-03 21:24:16

我发现的最接近的解决方案是用正确的xsi_type组成一个字典,并确保提供了所有必需的字段。然后,这个字典被提供给正在进行的dfpapi调用。在

因此,例如,我需要添加一个新的顶级KVP(CustomCriteriaSet),我使用以下代码:

new_kvp = {
    'xsi_type': 'CustomCriteriaSet',
    'logicalOperator': 'AND',
    'children': {
        'xsi_type': 'CustomCriteria',
        'keyId': key_id,
        'valueIds': [value1_id,value2_id],
        'operator': 'IS_NOT'
        }
    }
l.targeting['customTargeting'] = new_kvp
updated_li.append(l)
...
li_service.updateLineItems(updated_li)
...

虽然我在一个PHP示例here中发现,代码只是调用了CustomCriteriaSetcall,但是我在Python示例中找不到类似的代码。可能只是一个helper类,但我还没有检查PHP示例。在

不管怎样,这个解决方案对我都有效。所以我就这么做。在

相关问题 更多 >