2014-01-24 48 views
0

这是我的代码,当我试图运行它我在控制台中出现此错误。谷歌广告词使用python下载报告控制台

path = 'MYpaath' 
    report_downloader = client.GetReportDownloader(version='v201309') 

    # Create report definition. 
    report = { 
       'reportName': 'Last 7 days CRITERIA_PERFORMANCE_REPORT', 
       'dateRangeType': 'LAST_7_DAYS', 
       'reportType': 'CRITERIA_PERFORMANCE_REPORT', 
       'downloadFormat': 'CSV', 
       'selector': { 
          'fields': ['CampaignId', 'AdGroupId', 'Id', 'CriteriaType', 
       'Criteria', 'Impressions', 'Clicks', 'Cost'] 
          }, 
    # Enable to get rows with zero impressions. 
    'includeZeroImpressions': 'false' 
    } 
    print("============================================",report) 
    file1= report_downloader.DownloadReport(report, file_path=path) 
    print 'Report was downloaded to \'%s\'.' % file1 

错误我运行这个

file= report_downloader.DownloadReport(report, file_path=path) 
File "C:\Python27\lib\site-packages\adspygoogle-1.1.4-py2.7.egg\adspygoogle\adwords\ReportDownloader.py", line 100, in DownloadReport 
fileobj = open(file_path, 'w') 
IOError: [Errno 22] invalid mode ('w') or 
filename:'MYpath' 

回答

2

我有一个类似的错误后主动和它与路径和打开文件,并写入的方式有关。设置你的路径如下:

path = os.path.join(os.path.dirname(os.path.realpath(__file__)),"temp","report.csv") 

这基本上设置路径:/path/to/your/python/script/TEMP/report.csv

如果临时文件夹或report.csv文件不存在,它们将在此过程中创建。

之后,您需要打开文件,写入并关闭它。下面的脚本可以这样做:

f = open(path,'wb') 
f.write(report_downloader.DownloadReport(report)) 
f.close() 

所以你基本上是直接运行下载命令到打开的文件,然后关闭它。

希望这会有所帮助!

艾维里

+0

没有为我工作。 – rshvkmr

+0

你能给我什么错误?如果您尝试从Python IDLE版本2.75(而不是2.76)运行此代码,那么可能存在与IDLE相关的错误,无法读取上述代码中的__file__值。 – Aivoric

+0

我得到的错误是adspygoogle.adwords.AdWordsErrors.AdWordsReportError:HTTP代码:400,键入:'QuotaCheckError.INVALID_TOKEN_HEADER',触发:'[email protected]',字段路径:''但我使用OAuth 2.0过程正确。 和有时候 adspygoogle.common.Errors.MissingPackageError:需要PyXML v0.8.3或更高版本。 请帮忙 – rshvkmr