我有一些Apache访问日志,我想使用IPWhois进行解析。
我想根据asn_description字段对IPWhois结果进行分组。
以下代码片段中的set和itertools.groupby()不是产生了不同的结果吗?
descs = set()
with open(RESULTSFILE, 'a+') as r:
for description, items in groupby(results, key=lambda x: x['asn_description']):
print('ASN Description: ' + description)
descs.add(description)
print(descs)例如:
ASN Description: GOOGLE - Google LLC, US
ASN Description: AVAST-AS-DC, CZ
ASN Description: FACEBOOK - Facebook, Inc., US
ASN Description: AVAST-AS-DC, CZ
ASN Description: AMAZON-AES - Amazon.com, Inc., US
ASN Description: FACEBOOK - Facebook, Inc., US
ASN Description: AMAZON-02 - Amazon.com, Inc., US
ASN Description: AMAZON-02 - Amazon.com, Inc., US
ASN Description: GOOGLE - Google LLC, US
ASN Description: GOOGLE-2 - Google LLC, US
ASN Description: AMAZON-02 - Amazon.com, Inc., US
{'FACEBOOK - Facebook, Inc., US', 'AVAST-AS-DC, CZ', 'AMAZON-AES - Amazon.com, Inc., US', 'GOOGLE-2 - Google LLC, US', 'GOOGLE - Google LLC, US', 'AMAZON-02 - Amazon.com, Inc., US',发布于 2019-11-21 19:26:02
将您的代码更改为以下代码并尝试。如果您不需要items,那么可以使用_将其从for循环中删除。
import itertools
descs = dict()
with open(RESULTSFILE, 'a+') as r:
for i, (description, items) in enumerate(itertools.groupby(results, key=lambda x: x['asn_description'])):
print('ASN Description: ' + description)
descs.update({i: description})
print(descs)https://stackoverflow.com/questions/58973661
复制相似问题