簡體   English   中英

將設置列表寫入CSV-Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM