将csv上载到aws s3

2024-06-26 01:58:11 发布

您现在位置:Python中文网/ 问答频道 /正文

def store_to_10_rss(tempDF):
    s3 = boto3.resource('s3')
    try:
        s3.Object('abcData', 'cr/working-files/unstructured_data/news-links/10_rss.csv').load()
    except botocore.exceptions.ClientError as e:
        if e.response['Error']['Code'] == "404":
            print('\nThe object does not exist.')
            tempDF.to_csv('10_rss.csv')
            s3.Object('abcData/cr/working-files/unstructured_data/news-links/', '10_rss.csv').upload_file(Filename='10_rss.csv')
       
        else:
            print('\nSomething else has gone wrong.') 
            raise
    else:
        print('\nThe object does exist.')
    

在我的S3中,有多个存储桶。我想去abcdatabucket。在这个桶中,我想转到cr文件夹,然后转到-->;工作文件文件夹,然后转到-->;非结构化数据文件夹,然后转到-->;新闻链接文件夹。在“新闻链接”文件夹中,我想检查是否存在csv“10_rss”。如果不存在,我希望将传递的数据帧“tempDF”存储在csv中,并将此文件上载到路径“abcData/cr/工作文件/非结构化数据/新闻链接/”。 但这给了我一个错误: ParamValidationError:参数验证失败: “桶名必须匹配regex“^[a-zA-Z0-Z0-10-9-9-10-9-10-10-10-10-10-10-10-10-10-10-10-9-[a-zA-Z0-9-10-9-10-9-10-5-9-[a-zA-10-10-5-10-10-10-10-5..[a-zA-10.[10.[10.[9.[9.[9.[10-zA-zA-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-.[/:]accesspoint[/:][a-zA-Z0-9-]{1,63}$”

任何帮助都将不胜感激


Tags: csv数据gt文件夹s3链接新闻else
1条回答
网友
1楼 · 发布于 2024-06-26 01:58:11

请更正AWS S3上传文件的语法。请参阅AWS中的these文件上载示例。此外,您还可以参考AWS boto3 API guide以了解有关相同内容的更多详细信息

简而言之,在您当前的错误和示例代码中,您使用了AWS S3 bucket键或AWS S3文件夹与AWS S3 bucket name的组合,这对于upload_fileboto3 api来说不应该是这样。AWS S3存储桶名称,即sgfr01data必须是单独的参数

相关问题 更多 >