为什么我在一台服务器上得到了与unicode相关的python脚本验证错误,而在另一台服务器上却没有?

为什么我在一台服务器上得到了与unicode相关的python脚本验证错误,而在另一台服务器上却没有?,python,json,unicode,ubuntu,google-ads-api,Python,Json,Unicode,Ubuntu,Google Ads Api,我正在运行一个python脚本从Adwords API检索数据,它在CentOS服务器上成功运行。在Ubuntu服务器上使用相同的配置文件和脚本,我得到了一个unicode错误。是否有一些配置设置需要更改 Traceback (most recent call last): File "adwords_sync.py", line 230, in <module> adwords = AdWords(config) File "adwords_sync.py", li

我正在运行一个python脚本从Adwords API检索数据,它在CentOS服务器上成功运行。在Ubuntu服务器上使用相同的配置文件和脚本,我得到了一个unicode错误。是否有一些配置设置需要更改

Traceback (most recent call last):
  File "adwords_sync.py", line 230, in <module>
    adwords = AdWords(config)
  File "adwords_sync.py", line 37, in __init__
    self.client = AdWordsClient(headers=config.api_headers, config=config.api_config, path=config.api_config['home'])
  File "lib/python2.6/site-packages/adspygoogle/adwords/AdWordsClient.py", line 153, in __init__
    SanityCheck.ValidateConfigXmlParser(self._config['xml_parser'])
  File "lib/python2.6/site-packages/adspygoogle/common/SanityCheck.py", line 96, in ValidateConfigXmlParser
    raise ValidationError(msg)
adspygoogle.common.Errors.ValidationError: Invalid input for <type 'unicode'> '1', expecting 1 or 2 of type <str>.

是什么原因导致行“1”在Ubuntu服务器(但不是CentOS服务器)上抛出unicode错误?

检查每台服务器上的python、adsygoogle和simplejson版本。我猜其中一个在您的一台服务器上不同步,导致AdWords在其中一台服务器上接受unicode字符串,而在另一台服务器上不接受unicode字符串(或者导致simplejson解析在其中一台服务器上而不是另一台服务器上生成unicode字符串)

否则,在传递到adwords配置解析器之前,是否可以将值转换为str()

{
  ...
  "api_config": {
    "home": "/srv/logs/pylons",
    "log_home": "/srv/logs/pylons",
    "soap_lib": "2",
    "xml_parser": "1",
    ...
  }
}