[英]How to write dictionary data in memory value directly to s3 bucket as in csv file without writing in file then uploading it
[英]Trying to create CSV file directly in S3 and write data in CSV
大家好,我正在嘗試在 S3 中創建 csv 並在 csv 中提供數據,但無法存檔。
下面是代碼
import boto3
import csv
import time
date=time.strftime("%d-%m-%Y")
BUCKET_NAME = 'bucketname'
PREFIX = '/'
filename = f'result{date}.csv'
sts_s3 = boto3.resource('s3', region_name='us-west-2', endpoint_url='https://sts.us-west-2.amazonaws.com')
obj = sts_s3.Object(BUCKET_NAME, filename)
with open(f"s3://{BUCKET_NAME}{PREFIX}{filename}", 'w', newline='') as f:
column = ['1111','2222', '3333']
thewriter = csv.DictWriter(f, fieldnames=column)
writer = csv.writer(f)
thewriter.writeheader()
thewriter.writerow({'1111': 'aaa','2222':'bbb', '3333':'ccc'})
這是一個使用 s3fs 和 pandas 的示例。 使用我創建的熊貓,處理數據並使用 s3fs 上傳到 s3.----> pip install pandas 和 pip install s3fs
import s3fs
import pandas as pd
ACCESS_KEY='XXXXXXXXXXXXXXXXXXX'
SECRET_KEY='YYYYYYYYYYYYYYYYYYYYYY'
data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])
bytes_to_write = df.to_csv(None).encode()
fs = s3fs.S3FileSystem(key=ACCESS_KEY, secret=SECRET_KEY)
with fs.open('s3://mybuckets//file.csv', 'wb') as f:
f.write(bytes_to_write)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.