ошибка юникода python-omniture при получении метрик или сегментов - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу скрипт Python для извлечения некоторых аналитических данных из Adobe Analytics (ранее известный как Omniture) с пакетом python-omniture .

Я выполняю аутентификацию:

aa = omniture.authenticate("%s:%s" % (aa_username, aa_company), aa_secret)

Я получаю доступ к определенному набору отчетов, который мне нужен (если он существует):

if len(aa.suites) > 0:
  if aa_suite in map(lambda x: x.id, aa.suites):
    rs = aa.suites[aa_suite]
  else:
    raise Exception("[aa] no '%s' suite found" % aa_suite)
else:
  raise Exception("[aa] no report suites found")

И извлекаю все доступные элементы, метрики и сегменты для этого конкретного набора отчетов (например, для целей):

if "rs" in locals():
  t_e = rs.elements
  t_m = rs.metrics
  t_s = rs.segments

Сразу после этого я получаю это исключение:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 30: ordinal not in range(128)

Бывает со мной либо с метрикой, либо с сегментами.Извлечение элементов прошло нормально, но я подозреваю, что это просто вопрос удачи (или, точнее говоря, вопрос правильного кодирования или декодирования элементов).

Я читал (в основном здесь, в SO) этот Unicodeявляется одной из распространенных проблем при программировании на Python (я начал программировать на Python менее месяца назад, поэтому я не гуру).

Я знаю, что есть метод encode для кодирования таких строк, какэто: s.encode("utf-8") но моя проблема в том, что единственное, что я сейчас сделал, - это установил пакет для извлечения данных из API Adobe Analytics.

Я всегда мог открыть проблему на странице GitHub для этогопакет, но я хотел бы знать, могу ли я что-нибудь сделать, чтобы исправить это самостоятельно, не вмешиваясь в пакет.

Можете ли вы дать мне подсказку?

...