python преобразовать строку в значение словаря? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть тест на поведение, который я выполняю, и, как часть утверждения, мне нужно получить данные из фрейма данных, я делаю это с использованием словарного подхода.

пример шага, который я выполняю:

@then("a new file is created with ATTRIBUTE_NAME values")
def step_impl(context):
    attribute = (attribute)
    context.crm_df = context.pre_processing.get_file_contents_as_df(context.crm_output)
    expected = context.pre_processing.get_expected_crm_as_list(context.table, "attribute_name")
    actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.ATTRIBUTE_NAME))
    assert all(elem in actual for elem in expected), f"actual {actual} not equal to expected {expected}"

Чтобы сделать тест более гибким, я хочу передать указанное выше жестко кодированное значение ATTRIBUTE_NAME в качестве переменной

@then("a new file is created with {attribute} values")
def step_impl(context, attribute):
    attribute = (attribute)
    context.crm_df = context.pre_processing.get_file_contents_as_df(context.crm_output)
    expected = context.pre_processing.get_expected_crm_as_list(context.table, attribute)
    actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.attribute))
    assert all(elem in actual for elem in expected), f"actual {actual} not equal to expected {expected}"

Однако

context.crm_df.attribute не выполняется, так как атрибут является строкой.

Как определить строковый атрибут, чтобы Словарь мог его прочитать?

1 Ответ

0 голосов
/ 17 апреля 2020

Я решил это очень легко, изменив

actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.attribute))

на

 actual = dict(zip(context.crm_df.HASHED_MSISDN, context.crm_df.get(attribute)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...