KeyError при использовании метода mutate в FeedItemService - PullRequest
2 голосов
/ 10 мая 2019

В моем аккаунте есть настройка фида настройщика объявлений, и я хочу изменить значение одного элемента в этом фиде. Я попытался сделать это с помощью операции «SET» в «FeedItemService»

Когда я запускаю его, я получаю следующую ошибку:

KeyError: 'feedAttributes'

Я просмотрел документацию здесь: https://developers.google.com/adwords/api/docs/reference/v201809/FeedItemService.FeedItemAttributeValue

Я также рассмотрел новый пример кода feedItem 'ADD': https://developers.google.com/adwords/api/docs/guides/ad-customizers

Однако это только ДОБАВЛЕНИЕ новых элементов, а не их изменение (УСТАНОВКА).

Вот фрагмент кода:

fi_service = adwords_client.GetService('FeedItemService', version = 'v201809')

fi_operator = {                 
                'feedId': 1234,
                'feedItemId': 3456,                
                'attributeValues': [
                                    {                                     
                                     'feedAttributeId':111,
                                     'stringValue': '1000'}

                                    ]
        }
fi_creator_operation = {'operator': 'SET',                        
                        'operand': fi_operator}                

fi_call_response = fi_service.mutate(feed_creator_operation)

Вот трассировка:


Traceback (most recent call last):

  File "<ipython-input-57-892b092f7b88>", line 15, in <module>
    fi_call_response = fi_service.mutate(feed_creator_operation)

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1381, in MakeSoapRequest
    packed_args = self._PackArguments(method_name, args)

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1239, in _PackArguments
    for ((_, param), param_data) in izip(op_params, args)]

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1284, in _PackArgumentsHelper
    elem_type, type_override is not None, data_formatted, set_type_attrs)

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1351, in _CreateComplexTypeFromData
    for k, v in data if k != 'xsi_type'}

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1351, in <dictcomp>
    for k, v in data if k != 'xsi_type'}

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1284, in _PackArgumentsHelper
    elem_type, type_override is not None, data_formatted, set_type_attrs)

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1351, in _CreateComplexTypeFromData
    for k, v in data if k != 'xsi_type'}

  File "C:\ProgramData\Anaconda2\lib\site-packages\googleads\common.py", line 1351, in <dictcomp>
    for k, v in data if k != 'xsi_type'}

KeyError: 'feedAttributes'

Я попытался поэкспериментировать с добавлением ('xsi_type': 'feedAttributes') в различные словари (fi_operator, attributeValues, fi_creator_operation), на всякий случай, если это сработало, однако я все равно получаю тот же ответ.

...