[英]Write a list of sets to CSV - Python
编辑:看起来像集被用来建立字典,而列表是这些字典的列表。 @ That1Guy提供了正确答案,并提到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中打开它,它应该看起来像这样:
dns-a domain-name fuzzer
93.184.216.34 example.com Original
54.174.149.30 examplea.com Addition
exampleb.com Addition
你不必套 ,你有http://stardict.sourceforge.net/Dictionaries.php下载 。 在这种情况下,您应该在csv
模块中使用DictWriter类。
从文档:
创建一个操作类似于常规编写器的对象,但将字典映射到输出行。
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'})
您可以使用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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.