将集合列表写入CSV Python

2024-04-29 12:46:52 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:看起来集合是用来构建dict的,而列表就是这些dict的列表。@1古伊提供了正确的答案,提到了DictWriter解决了问题。在

我有一个包含以下数据的集合列表:

{'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中打开它,它应该是这样的:

^{pr2}$

Tags: 数据答案namecom编辑列表dnsexample
2条回答

您可以使用writerows代替writerow。你的案子:

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)

{你没有。既然如此,您应该在csv模块中使用DictWriter类。在

从文件中:

Create an object which operates like a regular writer but maps dictionaries onto output rows.

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'})

相关问题 更多 >