python執(zhí)行js腳本報(bào)錯(cuò)CryptoJS is not defined問(wèn)題
python執(zhí)行js腳本報(bào)錯(cuò)CryptoJS is not defined
直接在js代碼加上一行定義CryptoJS就行了
function encrypt(e) { const CryptoJS = require('crypto-js'); var b = "bGVhcm5zcGFjZWFlczEyMw=="; var a = new Base64(); var c = a.decode(b); var f = CryptoJS.enc.Utf8.parse(c); var d = CryptoJS.AES.encrypt(e, f, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return d.toString() };
下面附上調(diào)用js腳本的方法
def encrypt(t): node = execjs.get() ctx = node.compile(open('123.js', encoding='utf-8', ).read()) cnonce = ctx.call('encrypt',t) return cnonce q=encrypt(t)
python引用execjs 執(zhí)行js腳本時(shí)編碼錯(cuò)誤
報(bào)錯(cuò):
(UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 20: illegal )
錯(cuò)誤出在python內(nèi)部的subprocess.py文件
方法一
在引入execjs前加上下面三行代碼
import subprocess from functools import partial subprocess.Popen = partial(subprocess.Popen, encoding="utf-8") # 修改編碼方式,window默認(rèn)編碼是gbk,Mac和Linux 默認(rèn)是uft-8 #在前面三行后import需要的庫(kù) execjs import execjs
方法二
打開subprocess.py文件,找到初始化函數(shù)__init__()
修改參數(shù)的默認(rèn)值為encoding=‘utf-8’,程序運(yùn)行不再報(bào)錯(cuò)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python服務(wù)器端收發(fā)請(qǐng)求的實(shí)現(xiàn)代碼
這篇文章主要介紹了python服務(wù)器端收發(fā)請(qǐng)求的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09Django基于Models定制Admin后臺(tái)實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Django基于Models定制Admin后臺(tái)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python中表達(dá)式x += y和x = x+y 的區(qū)別詳解
這篇文章主要跟大家介紹了關(guān)于Python中x += y和x = x+y 的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06python獲取網(wǎng)絡(luò)圖片方法及整理過(guò)程詳解
這篇文章主要介紹了python獲取網(wǎng)絡(luò)圖片方法及整理過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Opencv實(shí)現(xiàn)計(jì)算兩條直線或線段角度方法詳解
這篇文章主要介紹了Opencv實(shí)現(xiàn)計(jì)算兩條直線或線段角度方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12Python基于分析Ajax請(qǐng)求實(shí)現(xiàn)抓取今日頭條街拍圖集功能示例
這篇文章主要介紹了Python基于分析Ajax請(qǐng)求實(shí)現(xiàn)抓取今日頭條街拍圖集功能,涉及Python針對(duì)今日頭條URL請(qǐng)求與json數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下2018-07-07