我有以下代码正在过滤和打印列表。最终的输出是以name.example.com形式出现的json。我想用name.sub.example.com来代替它,但我实际上很难做到这一点。 filterIP是一个可以完全删除元素的工作代码,我一直试图重复使用该位来修改元素,但不必这样处理。列表中的Python替换元素
def filterIP(fullList):
regexIP = re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$')
return filter(lambda i: not regexIP.search(i), fullList)
def filterSub(fullList2):
regexSub = re.compile(r'example\.com, sub.example.com')
return filter(lambda i: regexSub.search(i), fullList2)
groups = {key : filterSub(filterIP(list(set(items)))) for (key, items) in groups.iteritems() }
print(self.json_format_dict(groups, pretty=True))
这是我所得到的不filterSub
"type_1": [
"server1.example.com",
"server2.example.com"
],
这就是我与filterSub
"type_1": [],
这就是我试图让
"type_1": [
"server1.sub.example.com",
"server2.sub.example.com"
],
应用re.sub需要一个字符串不是列表...够交通便利的JSON是一个字符串...所以,如果你在将它传入json之后将它传递给它,它可能只是起作用 –
您需要获得正确的正则表达式。可能在之前添加通配符进行比赛。我会调整控制台中的正则表达式,直到它是正确的。也许添加正则表达式标记问题 – MrJLP
有没有一种方法专门重新编译列表我想要做的方式?我发现的一切都是为了字符串操作。在打印到json之后,我会修改修改。 –