Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我们可以从外部url加载.pkl文件吗?_Python_Pickle - Fatal编程技术网

Python 我们可以从外部url加载.pkl文件吗?

Python 我们可以从外部url加载.pkl文件吗?,python,pickle,Python,Pickle,我有一个312MB的pkl文件。我想将其存储到外部服务器(S3)或文件存储服务(例如,Google Drive、Dropbox或任何其他)。当我运行模型时,应该从该外部url加载pkl文件。 我已经退房了,但无法让它工作 代码: import urllib import pickle Nu_SVC_classifier = pickle.load(urllib.request.urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_

我有一个312MB的pkl文件。我想将其存储到外部服务器(S3)或文件存储服务(例如,Google Drive、Dropbox或任何其他)。当我运行模型时,应该从该外部url加载pkl文件。 我已经退房了,但无法让它工作

代码:

import urllib
import pickle

Nu_SVC_classifier = pickle.load(urllib.request.urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW","rb"))
错误

TypeError:POST数据应为字节、字节的iterable或文件对象。它不能是str类型


urllib.request.urlopen
的第二个参数是post数据,而不是不需要的文件模式

import urllib.request
import pickle

Nu_SVC_classifier = pickle.load(urllib.request.urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW"))

试试joblib而不是pickle,它对我有用

from urllib.request import urlopen
from sklearn.externals import joblib
Nu_SVC_classifier = joblib.load(urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW"))

它会导致另一个错误:UnpicklingError:invalid load key,“@nilanshbansal:One,我们无法知道您的坏数据是什么。第二,完全重写你的问题会使现有的答案无效;不要重写一个有效提问和回答的问题。如果需要,可以问一个新问题(但请确保其中包含一个;我们无法从心理上预测您试图加载的数据)。@ShadowRanger我自己对答案投了更高的票,因为答案很好,但我的问题尚未解决,我为编辑此问题道歉。pickle文件是绝对正确的,本地加载时相同的文件不会产生错误,因此从驱动器加载时肯定会出现一些错误。在(正确)回答问题后,请不要将问题作为一个全新的问题重写。如果有必要,可以问一个新问题,但不要通过完全询问其他问题来否定好的、有用的答案。我很抱歉@ShadowRanger编辑了这个答案,我对社区还是新手,我编辑了这个答案,这样新的答案就可以看到更新的版本,而不会涉及Daniel已经解决的错误。我的问题是如何从url成功加载pickle文件,其中包括。pickle文件应该由pickle.load模块加载。