【问题标题】:How to use pickle.load in flask app - Python3如何在烧瓶应用程序中使用 pickle.load - Python3
【发布时间】:2020-10-07 12:37:57
【问题描述】:
@app.route('/', methods=['POST'])
def upload_file():
if request.method == 'POST':

    if 'files[]' not in request.files:
        flash('No file part')
        return redirect(request.url)

    files = request.files.getlist('files[]')

    for file in files:
        if file and allowed_file(file.filename):
            #print(file.filename)
            filename = secure_filename(file.filename)
            encrypted_list = pickle.load(open(file, "rb"))
            print(encrypted_list)

我有一些字符串,其 base64 编码已存储在 .pem 文件中,并且想法是 X 人将在烧瓶应用程序中上传多个 .pem 文件,我不想将它们保存在磁盘,只需使用 pickle.load(open(file, "rb")) 读取那些 .pem 文件,但这个命令给了我错误。在加密时,我将那些 base64 编码的字符串存储在 .pem 文件中。现在我想从 Flask 中的 .pem 文件中解码这些字符串。

任何帮助将不胜感激,并在此先感谢!

【问题讨论】:

  • 您需要向我们展示错误信息。
  • encrypted_list = pickle.load(open(file, "rb")) TypeError: expected str, bytes or os.PathLike object, not FileStorage

标签: flask python-3.6 pickle pem


【解决方案1】:

正如错误消息所示,您不能将FileStorage 实例传递给pickle 的加载函数。

相反,您应该传入一个类似对象的文件,例如encrypted_list = pickle.load(file.stream)

https://werkzeug.palletsprojects.com/en/1.0.x/datastructures/#werkzeug.datastructures.FileStorage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多