如何使用python从.js文件中提取javascript变量?

2024-05-15 22:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图提取变量chartData中的JSON数据。这存储在一个.js文件中,该文件为我的太阳系生成了一张图表。我想提取这些数据,以便将其存储在单独的数据库中

然而,我似乎找不到一种方法来用python提取JSON数据

这是.js文件

var chartData =
{
"labels":
[
"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"],
"datasets":
[
{
"strokeColor":" rgba(64,178,83,1.0)",
"fillColor":" rgba(64,178,83,.5)",
"data": [
15.101000,9.819000,9.966000,19.634000,18.403000,17.015000,20.356000,20.645000,5.443000,14.542000,13.513000,9.774000,15.053000,16.870000,10.582000,
15.139000,7.230000,9.019000,18.687000,16.074000,17.183000,23.353000,22.248000,22.762000,22.458000,20.809000,18.034000,12.810000,15.627000,21.057000,
19.589000]
}
]
}
var max = 25;
var steps = 5;
var input = document.getElementById("inputId");
input.setAttribute("min",   "2019-02");
input.setAttribute("max",   "2020-01");
input.setAttribute("value", "2019-08");
document.getElementById("labelValueId").innerHTML = " 498.812kWh 08.2019";
document.getElementById("buttonPrevId").disabled  = false;
document.getElementById("buttonNextId").disabled  = false;
var myBar = new Chart(document.getElementById("canvasId")
.getContext("2d"))
.Bar(chartData,
{
"pointDot": false,
"datasetFill": false,
"scaleOverride": true,
"scaleLabel": "<%=value%> kWh",
"scaleSteps": steps,
"scaleStartValue": 0,
"scaleStepWidth": Math.ceil(max / steps),
"scaleLineColor":" rgba(170,170,170,1.0)",
"scaleFontColor":" rgba(170,170,170,1.0)",
"scaleGridLineColor":" rgba(68,68,68,1.0)"});

Tags: 文件数据jsonfalseinputvarjssteps
1条回答
网友
1楼 · 发布于 2024-05-15 22:11:26

如果变量txt中的是javascript字符串,则可以使用rejson模块加载数据:

import re
import json

m = re.findall(r'chartData =.*?({.*}).*?(?=var max)', txt, flags=re.S)[0]
data = json.loads( m )

print(data['datasets'][0]['data'])

印刷品:

[15.101, 9.819, 9.966, 19.634, 18.403, 17.015, 20.356, 20.645, 5.443, 14.542, 13.513, 9.774, 15.053, 16.87, 10.582, 15.139, 7.23, 9.019, 18.687, 16.074, 17.183, 23.353, 22.248, 22.762, 22.458, 20.809, 18.034, 12.81, 15.627, 21.057, 19.589]

相关问题 更多 >