Vue/Nuxt list transform in python

unwrap is optional but looks better.

def unwrap(value):
    if isinstance(value, list) and len(value) == 2: 
        if isinstance(value[0], str) and value[0] in ("ShallowReactive", "Reactive"):
            return value[1]
    return value

def expand(value, data):
    if isinstance(value, dict):
        return {
            key: expand(val, data)
            for key, val in value.items()
        }

    if isinstance(value, list):
        return unwrap([
            expand(item, data)
            for item in value
        ])

    if isinstance(value, int):
        if isinstance(data[value], (dict,list)):
            return expand(data[value], data)
        else:
            return data[value]

    return value
0
所有评论 0
Avatar
@busylog
准则 博客 联系 反馈 © 2026 Geeknote