首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为编写一个集合列表

为编写一个集合列表
EN

Stack Overflow用户
提问于 2016-03-31 15:16:50
回答 2查看 979关注 0票数 0

编辑:看起来集合是用来构建dict的,列表是这些dict的列表。@That1Guy给出了正确的答案,提到DictWriter解决了这个问题。

我有一个集合列表,其中包含以下数据:

代码语言:javascript
复制
{'dns-a': '93.184.216.34', 'domain-name': 'example.com', 'fuzzer': 'Original*'}
{'dns-a': '54.174.149.30', 'domain-name': 'examplea.com', 'fuzzer': 'Addition'}
{'domain-name': 'exampleb.com', 'fuzzer': 'Addition'}
{'dns-a': '104.130.124.96', 'domain-name': 'axample.com', 'fuzzer': 'Bitsquatting'}
{'domain-name': 'mxample.com', 'fuzzer': 'Bitsquatting'}
{'dns-a': '52.0.22.168', 'domain-name': 'exarnple.com', 'fuzzer': 'Homoglyph'}
{'dns-a': '64.57.183.2', 'domain-name': 'examp1e.com', 'fuzzer': 'Homoglyph'}
{'domain-name': 'exampl-e.com', 'fuzzer': 'Hyphenation'}
{'domain-name': 'exakmple.com', 'fuzzer': 'Insertion'}

如何将其写入CSV,其中集合的前半部分指定列名,而第二部分是值?例如,如果我在Excel中打开它,它应该是这样的:

代码语言:javascript
复制
dns-a          domain-name    fuzzer
93.184.216.34  example.com    Original
54.174.149.30  examplea.com   Addition
               exampleb.com   Addition
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-31 15:21:32

你没有集合,你有小块。在这种情况下,您应该在DictWriter模块中使用csv类。

从医生那里:

创建一个像普通作者一样工作的对象,但是将字典映射到输出行。

代码语言:javascript
复制
import csv

with open('names.csv', 'w') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
票数 2
EN

Stack Overflow用户

发布于 2016-03-31 15:38:54

您可以使用writerows而不是writerow。你的案子:

代码语言:javascript
复制
import csv

data = [{'dns-a': '93.184.216.34', 'domain-name': 'example.com', 'fuzzer': 'Original*'},
        {'dns-a': '54.174.149.30', 'domain-name': 'examplea.com', 'fuzzer': 'Addition'},
        {'domain-name': 'exampleb.com', 'fuzzer': 'Addition'},
        {'dns-a': '104.130.124.96', 'domain-name': 'axample.com', 'fuzzer': 'Bitsquatting'},
        {'domain-name': 'mxample.com', 'fuzzer': 'Bitsquatting'},
        {'dns-a': '52.0.22.168', 'domain-name': 'exarnple.com', 'fuzzer': 'Homoglyph'},
        {'dns-a': '64.57.183.2', 'domain-name': 'examp1e.com', 'fuzzer': 'Homoglyph'},
        {'domain-name': 'exampl-e.com', 'fuzzer': 'Hyphenation'},
        {'domain-name': 'exakmple.com', 'fuzzer': 'Insertion'}]

with open('data.csv', 'w') as data_csv:
    dict_writer = csv.DictWriter(data_csv, data[0].keys())
    dict_writer.writeheader()
    dict_writer.writerows(data)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36337424

复制
相关文章

相似问题

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