python-3.x 将dict序列化为lua表

sr4lhrrt  于 2022-12-24  发布在  Python
关注(0)|答案(1)|浏览(161)

Converting .lua table to a python dictionary询问如何将lua表转换为可以使用loadstring/loadfile加载的python dict。answer's建议了一个也支持相反转换方式的库,但是python3不再维护也不再支持它。
我无法找到一段代码,这样做的转换任何地方。

lc8prwob

lc8prwob1#

最后我自己实现了它:

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)}")

相关问题