捷径是说;如果dict中存在此项,请另存为变量。如果不是,则忽略“;在django

捷径是说;如果dict中存在此项,请另存为变量。如果不是,则忽略“;在django,django,Django,我从一个外部位置数据库中提取数据,该数据库返回关于位置的JSON信息。我想保存尽可能多的信息,但不是每一行都有所有的信息。我想: location, created = Location.objects.get_or_create( name=info['name'], lat=info['location']['lat'], lng=info['location']['l

我从一个外部位置数据库中提取数据,该数据库返回关于位置的JSON信息。我想保存尽可能多的信息,但不是每一行都有所有的信息。我想:

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

但对于某些位置,地址不存在,因此这会引发错误。如果有一个简单的方法来做到这一点,并避免一个庞大的字符串如果。。其他语句?

您可以使用
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), 
            )

您可以使用
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), 
            )

另一种方法是使用try-except块

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

另一种方法是使用try-except块

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

但是如果地址不存在,就不会创建任何内容,对吗?我仍然想用存在的信息创建位置。但是如果地址不存在,就不会创建任何内容,对吗?我仍然想用当前的信息创建位置。