AWS DynamoDB - 使用 JSON 文件作为输入使用 Boto3 加载数据
AWS DynamoDB - Load data with Boto3 using JSON file as input
我在 Amazon DynamoDB 中有多个表,JSON 数据 目前正在使用 batch-write-item
命令作为 AWS CLI 的一部分提供 - 这很好用。
但是我只想使用 Python + Boto3 但是 not 能够执行 Boto BatchWriteItem
以外部数据文件作为输入的请求。我设想如果有 Boto3 脚本,它会如下所示,但我无法找到它的 documentation/examples。
示例(伪代码)
table = dynamodb.Table(‘my_table’)
table.BatchWriteItem(RequestItems=file://MyData.json)
参考:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
感谢指点。
最好看的地方是 Boto3 的 readthedocs:https://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.batch_write_item
只要您的 JSON 格式正确,如示例中所示,您就可以使用:
f = open('MyData.json')
request_items = json.loads(f.read())
client = boto3.client('dynamodb')
response = client.batch_write_item(RequestItems=request_items)
我是这样加载的 JSON
import boto3
import json
dynamodbclient=boto3.resource('dynamodb')
sample_table = dynamodbclient.Table('ec2metadata')
with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
data=myfile.read()
# parse file
obj = json.loads(data)
#instance_id and cluster_id is the Key in dynamodb table
response=sample_table.put_item(
Item={
'instance_id': instanceId,
'cluster_id': clusterId,
'event':obj
}
)
我在 Amazon DynamoDB 中有多个表,JSON 数据 目前正在使用 batch-write-item
命令作为 AWS CLI 的一部分提供 - 这很好用。
但是我只想使用 Python + Boto3 但是 not 能够执行 Boto BatchWriteItem
以外部数据文件作为输入的请求。我设想如果有 Boto3 脚本,它会如下所示,但我无法找到它的 documentation/examples。
示例(伪代码)
table = dynamodb.Table(‘my_table’)
table.BatchWriteItem(RequestItems=file://MyData.json)
参考:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
感谢指点。
最好看的地方是 Boto3 的 readthedocs:https://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.batch_write_item
只要您的 JSON 格式正确,如示例中所示,您就可以使用:
f = open('MyData.json')
request_items = json.loads(f.read())
client = boto3.client('dynamodb')
response = client.batch_write_item(RequestItems=request_items)
我是这样加载的 JSON
import boto3
import json
dynamodbclient=boto3.resource('dynamodb')
sample_table = dynamodbclient.Table('ec2metadata')
with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
data=myfile.read()
# parse file
obj = json.loads(data)
#instance_id and cluster_id is the Key in dynamodb table
response=sample_table.put_item(
Item={
'instance_id': instanceId,
'cluster_id': clusterId,
'event':obj
}
)