Python Adwords API suds.sudsobject解析包含空索引键的响应?

时间:2017-02-21 21:43:04

标签: python soap google-adwords suds adwords-apiv201402

我有一个suds对象:

<class 'suds.sudsobject.AdGroupPage'>

Suds回应:

(AdGroupPage){
   totalNumEntries = 1
   Page.Type = "AdGroupPage"
   entries[] = 
      (AdGroup){
         id = 38496562285
         campaignId = 759990659
         campaignName = "Some Campaign #1"
         name = "Second group"
         status = "ENABLED"
         biddingStrategyConfiguration = 
            (BiddingStrategyConfiguration){
               biddingStrategyType = "MANUAL_CPC"
               bids[] = 
                  (CpcBid){
                     Bids.Type = "CpcBid"
                     bid = 
                        (Money){
                           ComparableValue.Type = "Money"
                           microAmount = 1230000
                        }
                     cpcBidSource = "ADGROUP"
                  },
            }
      },
 }

我正在尝试使用Google Adwords API创建SET操作,以使用Adwords API变异操作将广告组出价更改为其他内容。

这是我在 PYTHON 中的尝试:

operations = [{
    'operator': 'SET',
    'operand': {
        'id': 38496562285,
        'biddingStrategyConfiguration': {
            'bids': [{
                'bid': {
                    'microAmount': 4560000
                    }
                }]
            }
        }
    }]

我的请求中的错误是:

suds.TypeNotFound: Type not found: 'bid'

这是一个成功运作的简单示例:

operations = [{
      'operator': 'SET',
      'operand': {
          'id': ad_group_id,
          'status': 'PAUSED'
      }
  }]

我的问题是,我不知道如何处理suds响应中的bids[]语法。我应该如何修改我的字典以使用空列表键?

1 个答案:

答案 0 :(得分:0)

看起来我必须包含一些名为xsi_type的内容。如果有人遇到这个问题,这就是我operations对象的样子:

operations = [{
      'operator': 'SET',
      'operand': {
        'id': 38496562285,
        'biddingStrategyConfiguration': {
          'bids': [{
            'xsi_type': 'CpcBid',
            'bid': {'microAmount': 4560000}
            }]
          }
        }
      }]

以下是v201609 AdGroupService.BiddingStrategyConfiguration的链接。它没有提及xsi_type,但如果您遇到类似bids[]的字段,您现在知道在您的操作中尝试定义xsi_type