Ошибка кодирования словаря печати в Robotframework

У меня проблема с правильным отображением определенного ключа в словаре в Robotframework.

У меня есть словарь с этим ключом (latin-1 chars):

${dict}=     create dictionary  Nº Cartão=123

Когда я пытаюсь использовать переменную dict, журнал показывает:

{u'N\xba Cart\xe3o': u'123'}

Если я помещу строку в простую переменную:

${dict2}=     set variable     Nº cartão

Журнал показывает:

Nº Cartão

Также в python напрямую:

logger.console(dict)

keys = dict.keys()
logger.console(keys[0])

Журнал показывает:

{u'N\xba Cart\xe3o': u'123'}
Nº Cartão

Как его правильно распечатать? Спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
357
1

Ответы 1

Вы должны подтвердить, что кодировка файла - utf-8 (у меня были ошибки при использовании WINDOWS-1252 или ISO-8859-15, первый проблемный символ - name = Á .., а с Ẽ не удалось преобразовать из utf-8) .

Следующий тест отлично работает с RobotFramework 3.0.4 (в Python 2.7.15 и 3.6.6) в Linux.

*** Settings ***
Library           Collections

*** Variables ***
&{pc_dict}        one=1    2=2    ${3}=3    name=PC
&{ont_dict}       one=1    ${3}=3    name=ÁÇÕª    2=2

*** Test Cases ***
Example
    ${result}=    Run Keyword And Return Status    Dictionaries Should Be Equal    ${pc_dict}    ${ont_dict}

Key test
    &{dict}=    create dictionary    Nº Cartão=123
    Log Dictionary    ${dict}
    Collections.Dictionary Should Contain Key    ${dict}    Nº Cartão

Привет, Хелио, спасибо за ответ, но у меня есть еще один вопрос: могу ли я принудительно кодировать файл RF-файла, как мы это делаем в python (# -- кодировка: utf-8 --)?

koxta 14.09.2018 11:44

Другие вопросы по теме