【问题标题】:Extract element from JSON file in S3 bucket using boto3使用 boto3 从 S3 存储桶中的 JSON 文件中提取元素
【发布时间】:2021-10-08 18:29:39
【问题描述】:

我创建了一个 AWS Python Lambda,它模拟数据并将其作为消息发送到相关的 AWS IoT 主题。

我不想从 lambda 中的 os.environ 读取 Client_ID,而是想从我使用 boto3 存储在 S3 中的 JSON 文件中提取它们

【问题讨论】:

  • 您需要调用download_file(),然后在本地处理文件。

标签: json python-3.x amazon-web-services amazon-s3 boto3


【解决方案1】:

您应该考虑使用“S3 Select”,它允许您直接在 S3 中查询文件,而无需将文件下载到系统。在 boto3 中,它被称为select_object_content。我根据您的信息和 boto3 页面在下面构建了一个示例。

response = client.select_object_content(
    Bucket='mybucketname',
    Key='simulated/config/IoT-sim-config.json',
    Expression="SELECT s.* FROM S3Object s WHERE s.client_id = 'Sim_1'", # You will need to fiddle with the quotes on the SQL here.
    ExpressionType='SQL',
    InputSerialization={
        'JSON': {
            'Type': 'DOCUMENT'
        }
    },
    OutputSerialization={
        'JSON': {
            'RecordDelimiter': ','
        }
    }
)

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 2020-05-06
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2018-11-07
    • 2019-08-21
    相关资源
    最近更新 更多