當我們寫爬蟲的時候,經常會遇到json格式的資料,它通常是如下結構:
data = [{'name':'小K','score':100},
{'name':'小J','score':98},
{'name':'小Q','score':95},
{'name':'小K','score':100}]
很顯然名字為小K的資料重複了,我們需要進行去重。通常對於list的去重,我們可以用set()函數,即:
data = list(set(data))
然而,執行之後你會發現它報錯了:
list裡的資料不能是dict型別,那麼該怎麼辦呢?
定義一個去重的函數即可,根據裡面的某個key,對資料進行篩選去重:
def DelRepeat(data,key):
new_data = [] # 用於儲存去重後的list
values = [] # 用於儲存當前已有的值
for d in data:
if d[key] not in values:
new_data.append(d)
values.append(d[key])
return new_data
引數data為需要去重的list,key為去重的健(即按照哪個key來去重),去重後結果為:
[{'name': '小K', 'score': 100},
{'name': '小J', 'score': 98},
{'name': '小Q', 'score': 95}]
成功去重!
最後,感謝各位大大的耐心閱讀~
創作不易,大俠請留步… 動起可愛的雙手,來個贊再走唄 (๑◕ܫ←๑)