Пример #1
0
    def from_dict(person_dict):

        history = list()
        for event_dict in person_dict.get('history'):
            event_type = event_dict.get('type')
            if event_type == 'event':
                event = Event.from_dict(event_dict)
            elif event_type == 'offer':
                event = Offer.from_dict(event_dict)
            elif event_type == 'transaction':
                event = Transaction.from_dict(event_dict)
            else:
                raise ValueError(
                    'ERROR - Event type not recognized ({}).'.format(
                        event_type))

            history.append(event)

        person = Person(                            person_dict.get('became_member_on'),                                        \
                                                 id=person_dict.get('id'),                                                      \
                                                dob=person_dict.get('dob'),                                                     \
                                             gender=person_dict.get('gender'),                                                  \
                                             income=person_dict.get('income'),                                                  \
                                              taste=Categorical.from_dict(person_dict.get('taste')),                            \
                                  marketing_segment=Categorical.from_dict(person_dict.get('marketing_segment')),                \
                                   last_transaction=person_dict.get('last_transaction'),                                        \
                                last_unviewed_offer=person_dict.get('last_unviewed_offer'),                                     \
                                  last_viewed_offer=person_dict.get('last_viewed_offer'),                                       \
                                            history=history,                                                                    \
                             view_offer_sensitivity=Categorical.from_dict(person_dict.get('view_offer_sensitivity')),           \
                          make_purchase_sensitivity=Categorical.from_dict(person_dict.get('make_purchase_sensitivity')),        \
                        purchase_amount_sensitivity=Categorical.from_dict(person_dict.get('purchase_amount_sensitivity')))

        return person
Пример #2
0
    def from_dict(population_dict):

        population = Population(
            World.from_dict(population_dict.get('world')),
            people=[
                Person.from_dict(person_dict)
                for person_dict in population_dict.get('people')
            ],
            portfolio=[
                Offer.from_dict(offer_dict)
                for offer_dict in population_dict.get('portfolio')
            ],
            deliveries_path=population_dict.get('deliveries_path'),
            transcript_file_name=population_dict.get('transcript_file_name'))

        return population