+-
python – 只有在满足条件时才添加到dict
我正在使用urllib.urlencode来构建web POST参数,但是如果存在除None之外的值,则只需要添加一些值.

apple = 'green'
orange = 'orange'
params = urllib.urlencode({
    'apple': apple,
    'orange': orange
})

这工作正常,但是如果我将橙色变量设为可选,我怎样才能阻止它被添加到参数中?像这样的东西(伪代码):

apple = 'green'
orange = None
params = urllib.urlencode({
    'apple': apple,
    if orange: 'orange': orange
})

我希望这很清楚,有谁知道如何解决这个问题?

最佳答案
在创建初始字典后,您必须单独添加密钥:

params = {'apple': apple}
if orange is not None:
    params['orange'] = orange
params = urllib.urlencode(params)

Python没有将键定义为条件的语法;如果你已经拥有了序列中的所有内容,你可以使用dict理解:

params = urllib.urlencode({k: v for k, v in (('orange', orange), ('apple', apple)) if v is not None})

但那不是很可读.

点击查看更多相关文章

转载注明原文:python – 只有在满足条件时才添加到dict - 乐贴网