{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "6205f0fb-db74-44d2-bfb1-98760790125c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting boto3\n", " Downloading boto3-1.34.83-py3-none-any.whl.metadata (6.6 kB)\n", "Collecting botocore<1.35.0,>=1.34.83 (from boto3)\n", " Downloading botocore-1.34.83-py3-none-any.whl.metadata (5.7 kB)\n", "Collecting jmespath<2.0.0,>=0.7.1 (from boto3)\n", " Downloading jmespath-1.0.1-py3-none-any.whl.metadata (7.6 kB)\n", "Collecting s3transfer<0.11.0,>=0.10.0 (from boto3)\n", " Downloading s3transfer-0.10.1-py3-none-any.whl.metadata (1.7 kB)\n", "Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /opt/anaconda/envs/myenv/lib/python3.8/site-packages (from botocore<1.35.0,>=1.34.83->boto3) (2.9.0)\n", "Collecting urllib3<1.27,>=1.25.4 (from botocore<1.35.0,>=1.34.83->boto3)\n", " Downloading urllib3-1.26.18-py2.py3-none-any.whl.metadata (48 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.9/48.9 kB\u001b[0m \u001b[31m758.9 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: six>=1.5 in /opt/anaconda/envs/myenv/lib/python3.8/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.35.0,>=1.34.83->boto3) (1.16.0)\n", "Downloading boto3-1.34.83-py3-none-any.whl (139 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m139.3/139.3 kB\u001b[0m \u001b[31m2.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading botocore-1.34.83-py3-none-any.whl (12.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.1/12.1 MB\u001b[0m \u001b[31m24.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading jmespath-1.0.1-py3-none-any.whl (20 kB)\n", "Downloading s3transfer-0.10.1-py3-none-any.whl (82 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m82.2/82.2 kB\u001b[0m \u001b[31m2.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading urllib3-1.26.18-py2.py3-none-any.whl (143 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.8/143.8 kB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: urllib3, jmespath, botocore, s3transfer, boto3\n", "Successfully installed boto3-1.34.83 botocore-1.34.83 jmespath-1.0.1 s3transfer-0.10.1 urllib3-1.26.18\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install boto3" ] }, { "cell_type": "code", "execution_count": 23, "id": "4afe577f-283e-431a-8109-56228af5f203", "metadata": {}, "outputs": [], "source": [ "import boto3\n", "import json\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 15, "id": "80ea967b-3787-4c5a-b90b-692782bb9460", "metadata": {}, "outputs": [], "source": [ "# Initialize a session using your credentials\n", "session = boto3.Session(\n", " aws_access_key_id='AKIAZ3CL7RBT67UNF7CU',\n", " aws_secret_access_key='1C1gUZflYJ0Q8voiI4Iv+DBBXeLv0w9PQjOZm8Kr',\n", " region_name='us-west-2' # e.g., us-east-1\n", ")\n", "\n", "# Create an S3 client using the session\n", "s3 = session.client('s3')" ] }, { "cell_type": "code", "execution_count": 21, "id": "b05018cb-03d4-4d47-9c60-149a8f73cf1c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MOCK_PEOPLE.json\n", "MOCK_TRAVEL.json\n", "MOCK_VEHICLE.json\n" ] } ], "source": [ "bucket_name = 'caetestbucket'\n", "\n", "try:\n", " contents = s3.list_objects(Bucket=bucket_name)['Contents']\n", " for item in contents:\n", " print(item['Key'])\n", "except NoCredentialsError:\n", " print(\"Credentials not available\")\n", "except KeyError:\n", " print(\"Bucket is empty or does not exist\")" ] }, { "cell_type": "code", "execution_count": 25, "id": "028e3460-0485-4bfc-aa41-044276439838", "metadata": {}, "outputs": [], "source": [ "import boto3\n", "import json\n", "\n", "file_key = 'MOCK_VEHICLE.json'\n", "\n", "response = s3.get_object(Bucket=bucket_name, Key=file_key)\n", "# Assuming each line in the file is a separate JSON object\n", "vehicle_data_lines = response['Body'].read().decode('utf-8').splitlines()\n", "\n", "vehicle_data = []\n", "for line in vehicle_data_lines:\n", " try:\n", " vehicle = json.loads(line)\n", " vehicle_data.append(vehicle)\n", " except json.JSONDecodeError as e:\n", " print(f\"Error decoding JSON: {e}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "4e4c78c3-bd9d-417e-9b96-9046cce33df2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.19" } }, "nbformat": 4, "nbformat_minor": 5 }