execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘

使用 execjs 模块的 call() 方法时报两处错误

data = execjs.compile(open('15_exercise.js', 'r', encoding='utf-8').read()).call('decryptData', encrypted_data)

execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘_第1张图片

execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘_第2张图片

解决方法一:

在 import execjs 之前加入代码
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')

解决方法二:

将 subprocess.py 文件的 encoding=None 改为 utf-8

execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘_第3张图片

博客来源:
https://www.cnblogs.com/yusilu-2653144/p/16626661.html

你可能感兴趣的:(爬虫,python,爬虫)