0%

python 运行js代码并返回值

python 运行js代码并返回值:

使用pip安装pyexecjs:pip3 install pyexecjs

import execjs
import time
def get_videoallurl(vid_data):

hash_a = vid_data['hash_playkey']
vid = vid_data['vid']
js_str = '''
function add(a) {
return parseInt(a.substring(0, 8), 16).toString(36) + parseInt(a.substring(8, 16), 16).toString(36) + parseInt(a.substring(16, 24), 16).toString(36) + parseInt(a.substring(24, 32), 16).toString(36)
}
'''
test = execjs.compile(js_str) # compile()方法将返回一个Context对象,可通过这个对象的call方法来执行JS代码中的函数
New_hash = test.call('add', hash_a) # call()方法的第一个参数为要执行的函数名,后面的参数都为该函数所需的参数。
now_time = int(round(time.time() * 1000))
vid_data['hash_key'] = New_hash
vid_data['all_mp4_url'] = new_url
return vid_data