Конвертировать Google-Ads API GoogleAdsRow в CSV? - PullRequest
0 голосов
/ 17 января 2020

Google Ads API, их новая версия Google Adwords API возвращает данные в формате «GoogleAdsRow». Я не нашел никакой пользы для информации, представляемой в этом формате, и это довольно запутанно. Я хочу напечатать свой файл в формате basi c .csv, но, насколько я могу судить, разделителя нет. До сих пор я был в состоянии только напечатать каждую целую строку как одну ячейку. Не полезно :-).

Моя основная функция выглядит следующим образом. Я привел два примера того, что я пробовал, с блоком комментариев, идентифицирующего обе попытки:

def main(client, customer_id, page_size):
    ga_service = client.get_service('GoogleAdsService', version='v2')

    query = ('SELECT ad_group.id, ad_group_criterion.type, '
             'ad_group_criterion.criterion_id, '
             'ad_group_criterion.keyword.text, '
             'ad_group_criterion.keyword.match_type FROM ad_group_criterion '
             'WHERE ad_group_criterion.type = KEYWORD')

    results = ga_service.search(customer_id, query=query, page_size=page_size)

    try:
        with open(path, "w", encoding = "utf-8", newline = "") as f:
        #with open(path, "w") as csv:
            csv_writer = csv.writer(f, delimiter=',')
            for row in results:
                campaign = row.campaign           
                csv_writer.writerow([row]) #Prints entire returned row as a single cell
                csv_writer.writerow(row) #Tells me there is no delimiter

Повторяемая ошибка выглядит следующим образом

<ipython-input-15-e736ee2d05c9> in main(client, customer_id, page_size)
     17                 campaign = row.campaign
     18                 #csv_writer.writerow([row]) #Prints entire returned row as a single cell
---> 19                 csv_writer.writerow(row) #Tells me there is no delimiter
     20 
     21 

Error: iterable expected, not GoogleAdsRow
...