AWS DynamoDB 테이블을 CSV 파일로 내보내는 파이썬 스크립트를 만들었습니다.
목적
AWS의 DynamoDB 테이블을 CSV 파일로 내보내는 Python 스크립트를 만들었습니다.
※아래의 기사를 참고로 했습니다.
DynamoDB 테이블을 스캔하는 파이썬 코드
전제 조건
AWS CLI 버전 2이 설치되었습니다
aws configure 명령에서 자격 증명, 지역 및 출력 형식을 설정했습니다.
※이번은, DynamoDB에 이하의 테이블이 존재하고 있는 전제입니다.
※테이블명:GPSLog(GPS 로그 데이터)
실행
DynamoDBtoCSV.py
import os
import csv
import json
import datetime
import boto3
from boto3.session import Session
# 出力CSVファイル指定
output_csvfile = "出力CSVファイルを指定してください"
# 出力CSVファイルの存在チェック(ヘッダー有無の判断)
if(os.path.exists(output_csvfile)):
header_flg = 0
else:
header_flg = 1
# boto3でDynamoDBに接続
dynamodb = boto3.resource('dynamodb')
# テーブルをフルスキャン
def get_records(table, **kwargs):
while True:
response = table.scan(**kwargs)
for item in response['Items']:
yield item
if 'LastEvaluatedKey' not in response:
break
kwargs.update(ExclusiveStartKey=response['LastEvaluatedKey'])
records = get_records(dynamodb.Table('GPSLog'))
# 出力CSVファイルに書き込む
with open(output_csvfile, 'a', encoding='shift_jis') as output_csvfile_fp:
fieldnames = ['datetime', 'lat', 'lon', 'status', 'mode', 'speed', 'epx', 'epy']
csvfile_writer = csv.DictWriter(output_csvfile_fp, fieldnames=fieldnames, lineterminator='\n')
# 出力CSVファイル新規作成時、ヘッダー出力
if header_flg == 1:
csvfile_writer.writeheader()
header_flg == 0
for record in records:
# print(record)
# 出力CSVファイルに書き込む
csvfile_writer.writerow({
'datetime': record['datetime'] + '+09:00',
'lat': record['lat'],
'lon': record['lon'],
'status': record['status'],
'mode': record['mode'],
'speed': record['speed'],
'epx': record['epx'],
'epy': record['epy']
})
print(u'処理終了')
Reference
이 문제에 관하여(AWS DynamoDB 테이블을 CSV 파일로 내보내는 파이썬 스크립트를 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syanseto/items/4fa002dbda4710154bea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)