我想解析一个JavaScript代码,该代码定义包含TemplateLiterals(``)的数据。
这是一个简单的例子
let data = {
cat: 'Retail', name: 'Dollar Mania', value: 30,
icon: 'img/dollarmania.png',
desc: `
Best store in town!
<p>Founded in 2011</p>
`}
将此JS对象转换为python字典的最佳pythonic方法是什么?
答案 0 :(得分:0)
最安全的方法是在JavaScript中运行对象定义,然后使用JavaScript将其导出为Python可以原生读取的格式。 JSON是一种适合的格式。这样可以避免您不得不用Python编写JavaScript解析器,而这不得不考虑很多边缘情况。
在JavaScript中,将局部变量data
中的对象转换为JSON,然后将其打印到stdout:
const dataAsJsonString = JSON.stringify(data);
console.log(dataAsJsonString);
您的Python程序可以使用Python的内置JSON解析库来解码JavaScript的输出:
import json
dataAsJsonString = sys.stdin.read()
data = json.loads(dataAsJsonString)
要将数据从JavaScript传递到Python,您可以使用Node运行JavaScript程序并将其输出通过管道传递到Python程序:node dataSource.js | python data_reader.py
。或者,如果您无法通过Node运行JavaScript,则可以将控制台输出复制到剪贴板,然后通过管道将操作系统的命令粘贴到Python程序中,例如pbpaste | python data_reader.py
或xclip -out -selection clipboard | python data_reader.py
。