python dict中的可选参数
有没有办法将可选参数包含到Python字典中 例如,我有以下get请求的返回语句。它们依赖于输入,基本相同 如果该区域作为输入参数传递,则我们有:python dict中的可选参数,python,dictionary,Python,Dictionary,有没有办法将可选参数包含到Python字典中 例如,我有以下get请求的返回语句。它们依赖于输入,基本相同 如果该区域作为输入参数传递,则我们有: if region: return { 'success': True, 'result': { 'country': country, 'region': region, # optional region param 'cities'
if region:
return {
'success': True,
'result': {
'country': country,
'region': region, # optional region param
'cities': cities
}
}
如果城市通过:
if city:
return {
'success': True,
'result': {
'country': country,
'city': city, # optional city param
'cities': cities
}
}
如果未通过任何城市或地区:
return {
'success': True,
'result': {
'country': country,
'cities': cities
}
}
我想要的是一个返回语句:
return {
'success': True,
'result': {
'country': country,
if region: 'region': region, # I know this and the next lines don't work
if city: 'city': city,
'cities': cities
}
}
Control语句不允许与dict文字一起使用,但这样做很简单:
r = {
'country': country,
'cities': cities
}
if region:
r['region'] = region
if city:
r['city'] = city
return {
'success': True,
'result': r
}
选择1
如其他答案中所述,在本地创建一个字典,并在此过程中添加可选参数
选择2
使用函数返回的词典时,请使用
retdict.get('city','defaultvalue')
而不是retdict['city']
,以确保尝试获取不存在的参数时不会失败
选择3
使用
defaultdict
。和中列出了一些易于理解的示例,您可以将所有键传递给dict,然后使用None
值筛选键。检查如何过滤dict。