Чистая полярная версия безопасной буквальной оценкиPython

Программы на Python
Anonymous
Чистая полярная версия безопасной буквальной оценки

Сообщение Anonymous »

У меня есть такие данные,

Код: Выделить всё

df = pl.DataFrame({'a': ["['b', 'c', 'd']"]})
Я хочу преобразовать строку в список
Я использую

Код: Выделить всё

df = df.with_columns(a=pl.col('a').str.json_decode())
это дает мне,

Код: Выделить всё

ComputeError: error inferring JSON: InternalError(TapeError) at character 1 (''')
затем я использую эту функцию,

Код: Выделить всё

import ast
def safe_literal_eval(val):
    try:
        return ast.literal_eval(val)
    except (ValueError, SyntaxError):
        return val
df = df.with_columns(a=pl.col('a').map_elements(safe_literal_eval, return_dtype=pl.List(pl.String)))
и получить ожидаемый результат, но есть ли чистый полярный способ добиться того же?


Подробнее здесь: https://stackoverflow.com/questions/790 ... teral-eval

Вернуться в «Python»