本文整理汇总了Python中boto3.dynamodb.types.TypeDeserializer方法的典型用法代码示例。如果您正苦于以下问题:Python types.TypeDeserializer方法的具体用法?Python types.TypeDeserializer怎么用?Python types.TypeDeserializer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boto3.dynamodb.types
的用法示例。
在下文中一共展示了types.TypeDeserializer方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def __init__(self, transformer=None, condition_builder=None,
serializer=None, deserializer=None):
self._transformer = transformer
if transformer is None:
self._transformer = ParameterTransformer()
self._condition_builder = condition_builder
if condition_builder is None:
self._condition_builder = ConditionExpressionBuilder()
self._serializer = serializer
if serializer is None:
self._serializer = TypeSerializer()
self._deserializer = deserializer
if deserializer is None:
self._deserializer = TypeDeserializer()
示例2: get_account_role_map
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def get_account_role_map(boto_session, region_name):
"""Fetch the ARNs of all the IAM Roles which people have created in other
AWS accounts which are inserted into DynamoDB with
http://github.com/gene1wood/cloudformation-cross-account-outputs
:return: dict with account ID keys and IAM Role ARN values
"""
client = boto_session.client('dynamodb', region_name=region_name)
paginator = client.get_paginator('scan')
service_model = client._service_model.operation_model('Scan')
trans = TransformationInjector(deserializer=TypeDeserializer())
items = []
for page in paginator.paginate(TableName=DYNAMODB_TABLE_NAME):
trans.inject_attribute_value_output(page, service_model)
items.extend([x for x in page['Items']])
return {x['aws-account-id']: x['GuardDutyMemberAccountIAMRoleArn']
for x in items
if x.get('category') == DB_CATEGORY
and {'aws-account-id',
'GuardDutyMemberAccountIAMRoleArn'} <= set(x)}
示例3: __init__
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def __init__(self, status_code, payload):
self.status_code = status_code
self.payload = payload
Exception.__init__(
self,
'ES_Exception: status_code={}, payload={}'.format(
status_code, payload))
# Subclass of boto's TypeDeserializer for DynamoDB to adjust
# for DynamoDB Stream format.
示例4: ddb_to_dict
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def ddb_to_dict(item):
# type: (Dict[str, Any]) -> Dict[str, Any]
# TODO: narrow these types down
"""Converts a raw DynamoDB item to a native Python dictionary.
:param dict item: DynamoDB item
:returns: Native item
:rtype: dict
"""
deserializer = TypeDeserializer()
return {key: deserializer.deserialize(value) for key, value in item.items()}
示例5: _serialize_deserialize_cycle
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def _serialize_deserialize_cycle(attribute):
raw_attribute = TypeSerializer().serialize(attribute)
serialized_attribute = serialize_attribute(raw_attribute)
cycled_attribute = deserialize_attribute(serialized_attribute)
deserialized_attribute = TypeDeserializer().deserialize(cycled_attribute)
assert deserialized_attribute == attribute
示例6: _query_specific_date
# 需要导入模块: from boto3.dynamodb import types [as 别名]
# 或者: from boto3.dynamodb.types import TypeDeserializer [as 别名]
def _query_specific_date(self, date) -> Set[AthenaQuery]:
"""
Private method to query for all queries
made on a particular date with data_scanned > 0
:param date: str date of DATE_FORMAT
:return: Set of AthenaQuery, results of this operation
"""
# low level client type query is used instead of resource
# due to higher level resource query not allowing to filter
# data_scanned > 0
# start_timestamp is additionally queried for 'true' 24h days calculation
# instead of a 'day' being 24h +- 11.59h
query_finished_queries_for_days_function_call = functools.partial(
self._dynamodb.query,
TableName=self._config['QUERIES_TABLE'],
ProjectionExpression='data_scanned, executing_user, start_timestamp',
KeyConditionExpression='start_date = :date',
ExpressionAttributeValues={':date': {'S': f'{date}'},
':num': {'N': '0'}},
FilterExpression='#ds > :num',
ExpressionAttributeNames={'#ds': 'data_scanned'}
)
response = query_finished_queries_for_days_function_call()
data = response['Items']
# check for paginated results
while response.get('LastEvaluatedKey'):
response = query_finished_queries_for_days_function_call(
ExclusiveStartKey=response['LastEvaluatedKey'])
data.extend(response['Items'])
# data that comes is a list in elements of format:
# 'start_timestamp': {'S': '2019-01-23 18:47:04'}, ..
# so it needs to be deserialized while taking into account _dynamodb's ('S'..) types
python_data = [{field_name: TypeDeserializer().deserialize(type_value_dict)
for field_name, type_value_dict in data_entry.items()}
for data_entry in data]
return set(AthenaQuery(start_date=date, **item) for item in python_data)