Вот тут нужен парсинг, а не эти ваши ценники с авито дёргать
первое – строка?
А что это за формат? Похоже так-то на jsonpath
первое — строка
deepdiff выдаёт строковые пасы до изменённых атрибутов
Пока в голову приходит только сплит по точке, затем внутри каждого элемента регуляркой вытаскивать название для гетаттра и индекс/ключ для гетитем
точнее? типа такого хочешь? def safe_eval(expression, obj): """ Safely evaluate an expression on an object. """ parts = expression.split('.') for part in parts: # If the part contains an index (e.g., [0]), separate the index and the attribute name if '[' in part and ']' in part: attr_name, index_str = re.match(r'([a-zA-Z_]\w*)\[(\d+)\]', part).groups() index = int(index_str) obj = getattr(obj, attr_name)[index] else: obj = getattr(obj, part) return obj # Define a class and an object for demonstration class SomeClass: def __init__(self): self.first = [AnotherClass(), AnotherClass()] class AnotherClass: def __init__(self): self.second = [1, 2] some_obj = SomeClass() # Example usage expression = "first[0].second[1]" result = safe_eval(expression, some_obj) result
типа такого, только не так
а как? примерный код накидай тогда
f"x.{yourstr}".format(x=some_obj)
Тоесть там фирст[0][0]?
на выходе ж строка и получится
Обсуждают сегодня