簡體   English   中英

如何從S3存儲桶加載pickle(.pkl)文件

[英]How to load pickle(.pkl) file from S3 bucket

我已成功從Amazon S3讀取csv文件。 但我有情緒模型的.pkl文件。 我想加載這個.pkl文件來預測情緒。 這是我的代碼 -

import cPickle
import boto3
import pandas as pd
import boto3.session

session = boto3.session.Session(region_name='eu-central-1')
s3client = session.client('s3', config= boto3.session.Config(signature_version='s3v4'),aws_access_key_id='my-ACCESS-KEY-ID',
         aws_secret_access_key='my-ACCESS-KEY')

response = s3client.get_object(Bucket='sentiment-data', Key='positive_model_data.pkl')

nb_detector = cPickle.load(open(response['Body']))
nb_predict = nb_detector.predict('food is very good')[0]
print nb_predict 

強制轉換為Unicode時出錯:需要字符串或緩沖區,找到StreamingBody

如何從S3加載pickel文件???

cPickle.load()方法需要一個文件。 您需要使用loads方法而不是load loads需要字符串數據,如錯誤消息中所述。 但是, response['Body']為您提供StreamingBody StreamingBody有一個名為read的方法,它可以返回字符串內容。

...
body_string = response['Body'].read()
positive_model_data = cPickle.loads(body_string)
print positive_model_data
...

對你起作用嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM