首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3: set和itertools.groupby产生不同的结果?

python3: set和itertools.groupby产生不同的结果?
EN

Stack Overflow用户
提问于 2019-11-21 19:14:49
回答 1查看 28关注 0票数 0

我有一些Apache访问日志,我想使用IPWhois进行解析。

我想根据asn_description字段对IPWhois结果进行分组。

以下代码片段中的setitertools.groupby()不是产生了不同的结果吗?

代码语言:javascript
复制
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)

例如:

代码语言:javascript
复制
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',
EN

回答 1

Stack Overflow用户

发布于 2019-11-21 19:26:02

将您的代码更改为以下代码并尝试。如果您不需要items,那么可以使用_将其从for循环中删除。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58973661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档