相关疑难解决方法(0)

seek()函数?

请原谅我的困惑,但我已经阅读了关于python中的seek()函数的文档(必须使用它之后)虽然它对我有所帮助,但我仍然对它的实际含义有点困惑,任何解释都很多谢谢,谢谢.

python

116
推荐指数
2
解决办法
14万
查看次数

使用 AWS Lambda (python) 编写 csv 文件并将其保存到 S3 中

我正在尝试使用 AWS Lambda 将 csv 文件写入 S3 存储桶,为此我使用了以下代码:

data=[[1,2,3],[23,56,98]]
with open("s3://my_bucket/my_file.csv", "w") as f:
   f.write(data)
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

[Errno 2] No such file or directory: u's3://my_bucket/my_file.csv': IOError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 51, in lambda_handler
with open("s3://my_bucket/my_file.csv", "w") as f:
IOError: [Errno 2] No such file or directory: u's3://my_bucket/my_file.csv'
Run Code Online (Sandbox Code Playgroud)

请问我能帮上忙吗?

PS:我使用的是 python 2.7

提前致谢

python amazon-s3 amazon-web-services aws-lambda

7
推荐指数
2
解决办法
2万
查看次数

在 boto3 1.5.36 上使用 S3.Object().put() 在 S3 中存储 matplotlib 图像

除其他外,我正在使用 绘制图matplotlib,我想立即将其存储为 S3 对象。

根据thisthis other question以及精美手册中提供的答案,我需要S3.Object.put()将我的数据移动到AWS中,并且程序应该遵循

from matplotlib import pyplot as plt
import numpy as np
import boto3
import io

# plot something
fig, ax = plt.subplots()
x = np.linspace(0, 3*np.pi, 500)
a = ax.plot(x, np.sin(x**2))

# get image data, cf. /sf/answers/3156988691/
buf = io.BytesIO()
fig.savefig(buf, format="png")
buf.seek(0)
image = buf.read()

# put the image into S3
s3 = boto3.resource('s3', aws_access_key_id=awskey, aws_secret_access_key=awssecret)
s3.Object(mybucket, mykey).put(ACL='public-read', Body=image)
Run Code Online (Sandbox Code Playgroud)

但是,我最终得到了一个内容长度为零的新 S3 对象。

下面给了我一个内容长度为 6 …

io matplotlib amazon-s3 python-3.x boto3

5
推荐指数
1
解决办法
1549
查看次数

将字典列表作为 csv 直接写入 S3

我有一个字典列表,例如 temp_dict = [{'id':'1', 'name':'john'},{'id':'2', 'name':'jake'},{'id':'3', 'name':'jacob'}] 是否有一种方法可以直接将此字典作为 csv 文件(管道分隔)写入 S3。我不想从此列表中在本地创建 csv 文件,然后将其复制到 S3。

python csv amazon-s3 amazon-web-services

4
推荐指数
1
解决办法
8481
查看次数

使用 boto3 将字符串写入 S3:“'dict' 对象没有属性 'put'”

在 AWS lambda 中,我使用 boto3 将字符串放入 S3 文件中:

import boto3
s3 = boto3.client('s3')
data = s3.get_object(Bucket=XXX, Key=YYY)
data.put('Body', 'hello')
Run Code Online (Sandbox Code Playgroud)

有人告诉我:

[ERROR] AttributeError: 'dict' object has no attribute 'put'
Run Code Online (Sandbox Code Playgroud)

同样发生data.put('hello')How to write a file or data to an S3 object using boto3 and with data.put_object:的顶级答案推荐的方法'dict' object has no attribute 'put_object'

我究竟做错了什么?

相反,阅读效果很好(使用data.get('Body').read().decode('utf-8'))。

dictionary amazon-s3 python-3.x boto3 aws-lambda

3
推荐指数
1
解决办法
7632
查看次数

AWS lambda“errorMessage”:“无法从“botocore.client”导入名称“resolve_checksum_context”(/var/runtime/botocore/client.py)”

我正在创建一个 lambda 函数来分析股票价格并将结果作为 .csv 文件上传到我的 s3 存储桶中。为了做到这一点,我正在使用s3fs. 但我无法将 s3fs 导入我的 lambda 函数。错误信息是

{
  "errorMessage": "cannot import name 'resolve_checksum_context' from 'botocore.client' (/var/runtime/botocore/client.py)",
  "errorType": "ImportError",
  "requestId": "314d356c-c114-4c97-84a2-deb388f6cf8a",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 11, in lambda_handler\n    import s3fs\n",
    "  File \"/mnt/packages/s3fs/__init__.py\", line 1, in <module>\n    from .core import S3FileSystem, S3File\n",
    "  File \"/mnt/packages/s3fs/core.py\", line 20, in <module>\n    import aiobotocore.session\n",
    "  File \"/mnt/packages/aiobotocore/session.py\", line 7, in <module>\n    from .client import AioClientCreator, AioBaseClient\n",
    "  File \"/mnt/packages/aiobotocore/client.py\", line 2, in <module>\n    from botocore.client …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services python-3.x aws-lambda

3
推荐指数
1
解决办法
4670
查看次数