Python 值未添加到元组中

Python values not getting added to Tuple

你好,我有一种情况,我试图在我的代码中制作一个 filter 可定制的,这样代码重复最少,下面是我想要更新的代码

for ent in NACLS:
        response = ec2.describe_network_acls(Filters=[{'Name': 'network-acl-id', 'Values': [naclID]},
                                                      {'Name': 'entry.rule-number', 'Values': [str(ent[0])]},
                                                      {'Name': 'entry.protocol', 'Values': [ProtoDict[ent[1]]]},
                                                      {'Name': 'entry.port-range.from', 'Values': [str(ent[2])]},
                                                      {'Name': 'entry.port-range.to', 'Values': [str(ent[2])]},
                                                      {'Name': 'entry.rule-action', 'Values': ["deny"]},
                                                      ])

我希望过滤器可以自定义,例如

for ent in NACLS:
  if add = True: 
     response = ec2.describe_network_acls(Filters=[{'Name': 'network-acl-id', 'Values': [naclID]},
                                                   {'Name': 'entry.rule-number', 'Values': [str(ent[0])]},
                                              ])
  else:
    response = ec2.describe_network_acls(Filters=[{'Name': 'network-acl-id', 'Values': [naclID]},
                                                  {'Name': 'entry.rule-number', 'Values': [str(ent[0])]},
                                                  {'Name': 'entry.protocol', 'Values': [ProtoDict[ent[1]]]},
                                                  {'Name': 'entry.port-range.from', 'Values': [str(ent[2])]},
                                                  {'Name': 'entry.port-range.to', 'Values': [str(ent[2])]},
                                                  {'Name': 'entry.rule-action', 'Values': ["deny"]},
                                                  ])

这就是我想做的,但不起作用请告诉我是否有更好的方法来实现这个

for ent in NACLS:
    filters = {'Name': 'network-acl-id', 'Values': [naclID]}, {'Name': 'entry.rule-number', 'Values': [str(ent[0])]}
    filters = filters + tuple({'Name': 'entry.protocol', 'Values': [ProtoDict[ent[1]]]}) //we can add more but this was just to test
print(str(filters)[1:-1])

这个输出是-

{'Name': 'network-acl-id', 'Values': ['acl-08128a2540']}, {'Name': 'entry.rule-number', 'Values': ['80']}, 'Name', 'Values'

当我尝试在元组中添加值时,它显示为空白,有人可以指导我这里做错了什么吗?

我怀疑通过添加元组,你的意思是将字典添加到过滤器的元组中,这不是你在当前脚本中所做的。我建议你更换

filters = filters + tuple({'Name': 'entry.protocol', 'Values': [ProtoDict[ent[1]]]})

filters = filters + ({'Name': 'entry.protocol', 'Values': [ProtoDict[ent[1]]]},)