'Transforms a Python dictionary to an Output object.
Note:
To pass a serialization cycle multiple times, a
Cryptoconditions Fulfillment needs to be present in the
passed-in dictionary, as Condition URIs are not serializable
anymore.
Args:
data (dict): The dict to be transformed.
Returns:
:class:`~bigchaindb.common.transaction.Output`'

@classmethod
def from_dict(cls, data):

    try:
        fulfillment = _fulfillment_from_details(data['condition']['details'])
    except KeyError:
        fulfillment = data['condition']['uri']
    try:
        amount = int(data['amount'])
    except ValueError:
        raise AmountError(('Invalid    amount:    %s' % data['amount']))
    return cls(fulfillment, data['public_keys'], amount)
