用Python解析JavaScript变量

5 投票
2 回答
6691 浏览
提问于 2025-04-16 04:00

我该如何把一个JavaScript变量(不是JSON格式)转换成Python变量呢?

下面是一个JavaScript变量的例子:

{
    title: "TITLE",
    name: "NAME",
    active: false,
    info: {
        key1: "value1",
        dict1: {
            sub_key1: "sub_value1",
            sub_key2: "sub_value2",
        },
        dict2: {
            sub_key3: "sub_value3",
            sub_key4: "sub_value4",
            sub_key5: "sub_value5"
        },
    },
    list1: ["element1", "element2", "element2"],
}

2 个回答

1

把它转换成JSON格式,然后在Python中读取。

我真的不明白问题出在哪里?

比如说,JSON.stringify 会输出:

{"title":"TITLE","name":"NAME","active":false,"info":{"key1":"value1","dict1":{"sub_key1":"sub_value1","sub_key2":"sub_value2"},"dict2":{"sub_key3":"sub_value3","sub_key4":"sub_value4","sub_key5":"sub_value5"}},"list1":["element1","element2","element2"]}

这个输出可以被Python的json模块读取。那么问题是,你从哪里得到JavaScript的代码,为什么不能把它转换成JSON呢?

补充一下:如果你完全无法控制JavaScript的来源,你可以把JavaScript当作命令行脚本语言来使用,比如说spidermonkey(在Firefox中使用),rhinoV8(在Google Chrome中使用)或者在Windows的WSH中使用。通过使用JavaScript解释器,你可以修改JavaScript代码,把它转换成字符串格式,然后如果需要的话再用Python处理。

使用已经实现并经过测试的解释器比自己构建一个要好得多。

你也可以试试python-spidermonkey

3

这个格式看起来和在这个问题中的输入一模一样。你可以试着调整我在那里的pyparsing解析器。

撰写回答