首页 > 解决方案 > 如何在烧瓶应用程序中使用 pickle.load - Python3

问题描述

@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读取这些 .pem 文件.load(open(file, "rb"))但这个命令给了我错误。在加密时,我将那些 base64 编码的字符串存储在 .pem 文件中。现在我想从 Flask 中的 .pem 文件中解码这些字符串。

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

标签: flaskpython-3.6picklepem

解决方案


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

相反,您应该传入一个像对象这样的文件,就像这样encrypted_list = pickle.load(file.stream)

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


推荐阅读