我有以下代碼正在過濾和打印列表。最終的輸出是以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之後,我會修改修改。 –