使用google adwords api编码错误

Posted

技术标签:

【中文标题】使用google adwords api编码错误【英文标题】:Encoding error using google adwords api 【发布时间】:2017-07-15 20:41:16 【问题描述】:

我正在使用 google adwords api。目前我唯一的代码是:

from googleads import adwords
adwords_client = adwords.AdWordsClient.LoadFromStorage()

这会导致显示Your default encoding, cp1252, is not UTF-8. Please run this script with UTF-8 encoding to avoid errors.的错误

我使用的是 Python 3.6,默认情况下应该是 UTF-8。这个错误的根源是什么/如何避免?

【问题讨论】:

你能添加错误的完整堆栈跟踪吗?很难弄清楚这里到底发生了什么。 @dorian 这就是显示的全部内容。它是屏幕上的文本输出,不会导致代码崩溃(事实上,我随后只是忽略了该错误而没有任何其他问题)。 【参考方案1】:

事实证明,这实际上是googleadslocale.getdefaultlocale() 返回的默认编码不是UTF-8 时发出的警告。

如果您的脚本运行没有问题,我认为您可以放心地忽略它。否则,可能值得尝试在代码开头设置不同的语言环境:

import locale
locale.setlocale(locale.LC_ALL, NEW_LOCALE)

我认为您正在运行 Windows,所以我不确定正确的语言环境定义是什么。在 Linux 上,您可以使用 en_US.UTF-8,但这可能不适合您。

【讨论】:

这不起作用,因为 locale.setlocale 不会改变 default 编码(至少在 Windows 上不会)【参考方案2】:

尝试导入 _locale 模块。

导入 _locale

_locale._getdefaultlocale = (lambda *args: ['en_US', 'UTF-8'])

【讨论】:

以上是关于使用google adwords api编码错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Adwords API 时出现解组错误

Google Adwords API 错误 - OAuth 客户端已删除

如何开始使用 Google AdWords API?

从 Java 调用 Google Adwords api

Google Adwords API 身份验证问题

Google AdWords API - 报告定义问题