Ярлык, чтобы сказать «если это существует в dict, сохранить как переменную. Если нет, игнорировать» в Django - PullRequest
1 голос
/ 04 января 2012

Я извлекаю данные из внешней базы данных мест, которая возвращает JSON информации о местах. Я хотел бы сохранить как можно больше информации, но не в каждой строке есть вся информация. Я хотел бы:

            location, created = Location.objects.get_or_create(
                name=info['name'], 
                lat=info['location']['lat'], 
                lng=info['location']['lng'], 
                address=info['location']['address'], 
            )

, но для некоторых местоположений адрес отсутствует, поэтому это может привести к ошибке. Если есть короткий способ сделать это и избежать огромной строки операторов if .. else?

Ответы [ 2 ]

4 голосов
/ 04 января 2012

Вы можете использовать dict метод get

location, created = Location.objects.get_or_create(
                name=info['name'], 
                lat=info['location']['lat'], 
                lng=info['location']['lng'], 
                address=info['location'].get('address', None), 
            )
0 голосов
/ 04 января 2012

Еще один способ - использовать блок try-кроме.

try:
    location, created = Location.objects.get_or_create(
                name=info['name'], 
                lat=info['location']['lat'], 
                lng=info['location']['lng'], 
                address=info['location']['address'], 
            )
except:
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...