新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:python如何調(diào)用js代碼?
python調(diào)用js代碼比較好用的方法是使用第三方庫(kù)pyexecjs,這個(gè)庫(kù)可以用python運(yùn)行JavaScript代碼。

實(shí)現(xiàn)方式: 在本地 JS 環(huán)境下運(yùn)行 JS 代碼 PS:支持的 JS 環(huán)境包含:Node.js、PyV8、PhantomJS、Nashorn 等
1.安裝依賴包 PyExecJS
//py_exec_js_demo.py //安裝依賴 pip3 install PyExecJS
2.從 JS 文件中讀取源碼
def js_from_file(file_name): """ 讀取js文件 :return: """ with open(file_name, 'r', encoding='UTF-8') as file: result = file.read() return result
3.使用 execjs 類的compile()方法編譯加載上面的 JS 字符串,返回一個(gè)上下文對(duì)象
import execjs
from js_code import *
# 編譯加載js字符串
context1 = execjs.compile(js_from_file('./norm.js'))4.調(diào)用上下文對(duì)象的call() 方法執(zhí)行 JS 方法其中參數(shù)包含:JS 代碼被調(diào)的方法名、對(duì)應(yīng)方法的傳入?yún)?shù)
# 調(diào)用js代碼中的add()方法,參數(shù)為2和3
# 方法名:add
# 參數(shù):2和3
result1 = context1.call("add", 2, 3)
print(result1)需要注意:js代碼返回的字符串如果有特殊字符的話可能會(huì)出錯(cuò)。
解決方法:先將字符串進(jìn)行base64編碼后再返回。
function a(str) {
return new Buffer(str).toString("base64");
} 名稱欄目:創(chuàng)新互聯(lián)Python教程:python如何調(diào)用js代碼?
地址分享:http://www.dlmjj.cn/article/coojcgh.html


咨詢
建站咨詢
