最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在现有的javascript文件中提取数组的值

运维笔记admin11浏览0评论

在现有的javascript文件中提取数组的值

在现有的javascript文件中提取数组的值

我正在尝试将javascript文件中定义的值转换为json文件,或者将这些值提取为我可以使用python处理的其他格式。有没有人知道python库,node.js包或其他用本地文件执行此操作的方法?我不能使用ajax或php来完成这项任务。

语境:

我有一个名为file.js的javascript文件,其中没有函数,但是以下列方式定义了许多冗长的数组:

var an_array1 = new Array();
an_array[1] = {some array values 1}
...
an_array[n] = {some array values n}

var another_array = new Array();
another_array[1] = {some other array values 1}
...
another_array[m] = {some other array values m}

此文件中不包含任何函数,只是调用var以及后续设置数组值。

类似的问题提供了关注使用ajax或php的答案,但我认为我不能将这些工具用于此目的。但是,我可以使用node.js,python和任何相关的库/包。我也会尝试使用awk / sed类型的脚本,但我不认为这会在这里工作,因为我想要的数据需要首先解析/处理file.js

理想的结果

最后,我想使用一些方法来处理file.js,将一个特定数组的值提取到它自己的文件中作为JSON,或者其他类似的格式(XML也可以,甚至csv也可以)。例如。:

file.json:
[{some array values 1},...,{some array values n}]

有谁知道如何做到这一点?有一些类似的问题,但那些假设我正在查询网站或其他东西,这不是这里的情况。

回答如下:

如果file.js文件的结构是在顶层声明所需的变量,那么这是一个可以为你做这个的节点文件。如果不是这样的话,你必须告诉我们file.js究竟是什么样的。

// load filesystem module
var fs = require("fs");

// read JS file and execute it
var data = fs.readFileSync("file.js", {encoding: "utf8"});
eval(data);

// write data out to files
fs.writeFile("result1.json", JSON.stringify(an_array1));
fs.writeFile("result2.json", JSON.stringify(an_array2));

然后,您将使用node.js运行此JS文件。

这将使用节点中的V8 JS解释器来解析JS文件中的变量。然后它将加载文件系统模块,然后将两个单独数组的JSON表示写入文件。

然后,您可以编写Python来读取这些文件,将JSON解析为Python理解的形式(Python内置JSON解析),然后使用Python中的数据执行任何操作。

发布评论

评论列表(0)

  1. 暂无评论