сериализовать dict как таблицу lua - PullRequest
0 голосов
/ 27 января 2019

Преобразование таблицы .lua в словарь Python запрашивает преобразование таблицы lua в диктант Python, который может быть загружен с помощью loadstring / loadfile.В ответе предложена библиотека, которая также поддерживает преобразование наоборот, однако она больше не поддерживается и не поддерживается python3.

Мне не удалось найти фрагмент кода, который выполняет это преобразование где-либо.

1 Ответ

0 голосов
/ 27 января 2019

Я сам реализовал это:

    def dump_lua(data):
        if type(data) is str:
            return f'"{re.escape(data)}"'
        if type(data) in (int, float):
            return f'{data}'
        if type(data) is bool:
            return data and "true" or "false"
        if type(data) is list:
            l = "{"
            l += ", ".join([dump_lua(item) for item in data])
            l += "}"
            return l
        if type(data) is dict:
            t = "{"
            t += ", ".join([f'[\"{re.escape(k)}\"]={dump_lua(v)}' 
for k,v in data.items()])
            t += "}"
            return t
        logging.error(f"Unknown type {type(data)}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...