Я пишу скрипт 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 для этогопакет, но я хотел бы знать, могу ли я что-нибудь сделать, чтобы исправить это самостоятельно, не вмешиваясь в пакет.
Можете ли вы дать мне подсказку?