用Python解析JavaScript变量
我该如何把一个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中使用),rhino,V8(在Google Chrome中使用)或者在Windows的WSH中使用。通过使用JavaScript解释器,你可以修改JavaScript代码,把它转换成字符串格式,然后如果需要的话再用Python处理。
使用已经实现并经过测试的解释器比自己构建一个要好得多。
你也可以试试python-spidermonkey。
3
这个格式看起来和在这个问题中的输入一模一样。你可以试着调整我在那里的pyparsing解析器。