Sekmeyle ayrılmış bir tablo olan S3'e kaydedilmiş bir metin dosyam var. Onu pandalara yüklemek istiyorum ama önce kaydedemiyorum çünkü bir heroku sunucusunda çalışıyorum. İşte şimdiye kadar sahip olduğum şey.
import io
import boto3
import os
import pandas as pd
os.environ["AWS_ACCESS_KEY_ID"] = "xxxxxxxx"
os.environ["AWS_SECRET_ACCESS_KEY"] = "xxxxxxxx"
s3_client = boto3.client('s3')
response = s3_client.get_object(Bucket="my_bucket",Key="filename.txt")
file = response["Body"]
pd.read_csv(file, header=14, delimiter="\t", low_memory=False)
hata
OSError: Expected file path name or file-like object, got <class 'bytes'> type
Yanıt gövdesini pandaların kabul edeceği bir biçime nasıl dönüştürebilirim?
pd.read_csv(io.StringIO(file), header=14, delimiter="\t", low_memory=False)
returns
TypeError: initial_value must be str or None, not StreamingBody
pd.read_csv(io.BytesIO(file), header=14, delimiter="\t", low_memory=False)
returns
TypeError: 'StreamingBody' does not support the buffer interface
GÜNCELLEME - Aşağıdakileri kullanarak çalıştı
file = response["Body"].read()
ve
pd.read_csv(io.BytesIO(file), header=14, delimiter="\t", low_memory=False)
io.BytesIO(file)
yaio.StringIO(file)
yerinefile
deread_csv()
çağrı