0

Adwords API からデータを取得する Python スクリプトを実行していますが、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>.

構成ファイルは JSON ファイルです。

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

Ubuntu サーバー (CentOS サーバーではなく) で行「1」が Unicode エラーをスローする原因は何ですか?

4

1 に答える 1

0

各サーバーで python、adsygoogle、および simplejson のバージョンを確認します。そのうちの 1 つがサーバーの 1 つで同期されていないため、AdWords が一方のサーバーでは Unicode 文字列を受け入れ、もう一方のサーバーでは受け入れない (または、simplejson 解析により、一方のサーバーでは Unicode 文字列が生成され、他方のサーバーでは生成されない) と推測されます。

それができない場合、値を str() としてキャストしてから、adwords 構成パーサーに渡すことはできますか?

于 2011-01-26T03:28:36.517 に答える