将JavaScript TemplateLiteral转换为python dictionnary

时间:2018-07-24 14:05:25

标签: javascript python dictionary

我想解析一个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方法是什么?

1 个答案:

答案 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.pyxclip -out -selection clipboard | python data_reader.py