python執(zhí)行js腳本報錯CryptoJS is not defined問題
python執(zhí)行js腳本報錯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腳本時編碼錯誤
報錯:
(UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 20: illegal )
錯誤出在python內(nèi)部的subprocess.py文件
方法一
在引入execjs前加上下面三行代碼
import subprocess from functools import partial subprocess.Popen = partial(subprocess.Popen, encoding="utf-8") # 修改編碼方式,window默認編碼是gbk,Mac和Linux 默認是uft-8 #在前面三行后import需要的庫 execjs import execjs
方法二
打開subprocess.py文件,找到初始化函數(shù)__init__()
修改參數(shù)的默認值為encoding=‘utf-8’,程序運行不再報錯
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python服務(wù)器端收發(fā)請求的實現(xiàn)代碼
這篇文章主要介紹了python服務(wù)器端收發(fā)請求的實現(xiàn)代碼,需要的朋友可以參考下2014-09-09Django基于Models定制Admin后臺實現(xiàn)過程解析
這篇文章主要介紹了Django基于Models定制Admin后臺實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2020-11-11Python中表達式x += y和x = x+y 的區(qū)別詳解
這篇文章主要跟大家介紹了關(guān)于Python中x += y和x = x+y 的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習價值,需要的朋友們下面來一起看看吧。2017-06-06python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解
這篇文章主要介紹了python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2019-12-12Python基于分析Ajax請求實現(xiàn)抓取今日頭條街拍圖集功能示例
這篇文章主要介紹了Python基于分析Ajax請求實現(xiàn)抓取今日頭條街拍圖集功能,涉及Python針對今日頭條URL請求與json數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下2018-07-07