我试图从Python运行以下脚本
import execjs
var request = require('request');
var apiHostName='https:/url.com';
emailAddress = 'my.email@company.com'
apiKey = 'api_key'
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log("Identity with email address " + emailAddress + " found:");
var b= JSON.parse(body);
console.log("id="+b.identityId+",api key="+b.apiKey+",type="+b.type);
} else{
if (response.statusCode == 401) {
console.log ("Couldn't recognize api key="+apiKey);
} else if (response.statusCode == 403) {
console.log ("Operation forbidden for api key="+apiKey);
} else if (response.statusCode == 404) {
console.log ("Email address " +emailAddress + " not found");
}
}
}
这样做了:
pip install py-mini-racer
pip install PyExecJS
基于我所做的研究,我认为这非常接近,但我不确定。我现在得到的就是这个错误:'SyntaxError:invalid syntax'
此行发生错误:'var request = require('request');'
发布于 2018-09-18 09:49:43
这些示例都包含JS代码作为字符串,传递给execjs.eval
或execjs.compile,
试图直接包含JS代码内联,就好像它是Python代码一样。那不行; 它将尝试将JS代码解析为Python并引发一个SyntaxError
因为它们不是同一种语言。1
所以必须做与例子相同的事情,可能看起来像这样:
import execjs
jscode = """
var request = require('request');
var apiHostName='https:/url.com';
emailAddress = 'my.email@company.com'
apiKey = 'api_key'
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log("Identity with email address " + emailAddress + " found:");
var b= JSON.parse(body);
console.log("id="+b.identityId+",api key="+b.apiKey+",type="+b.type);
} else{
if (response.statusCode == 401) {
console.log ("Couldn't recognize api key="+apiKey);
} else if (response.statusCode == 403) {
console.log ("Operation forbidden for api key="+apiKey);
} else if (response.statusCode == 404) {
console.log ("Email address " +emailAddress + " not found");
}
}
}
"""
execjs.eval(jscode)
将JavaScript移动到单独的.js
文件,然后像这样运行:
import os.path
import execjs
dir = os.path.dirname(__file__)
with open(os.path.join(dir, 'myscript.js')) as f:
jscode = f.read()
execjs.eval(jscode)
发布于 2019-09-20 16:16:02
请问执行js时候,require报错解决了吗?
https://stackoverflow.com/questions/-100006134
复制相似问题