簡體   English   中英

Python:為csv.DictWriter設置quotechar嗎?

[英]Python: Set a quotechar for csv.DictWriter?

有沒有一種方法可以為csv.DictWriter()字段名稱設置quotechar,類似於如何使用csv.reader()設置quotechar? 我對用下面的quote變量定義的指定quotechar包圍非數字字段名稱條目特別感興趣。

我試圖得到

    fieldnames = ['a', 'b', 'c', 'd', 'e']
    separator = ','
    quote = '"'
    table = [{'a': 10, 'c': 12, 'b': 11, 'e': 14, 'd': 13}]

    with open('output1.csv', 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames = fieldnames, delimiter = separator)
        writer.writeheader()
        for row in table:
            writer.writerow(row)

輸出

"a","b","c","d","e"
10,11,12,13,14

quote = '"'而不是

a,b,c,d,e
10,11,12,13,14
import csv

fieldnames = ['a', 'b', 'c', 'd', 'e']
separator = ','
quote = '"'
table = [{'a': 10, 'c': 12, 'b': 11, 'e': 14, 'd': 13}]

with open('output1.csv', 'w') as csvfile:
    writer = csv.DictWriter(
        csvfile,
        fieldnames=fieldnames,
        delimiter=separator,
        quotechar=quote,
        quoting=csv.QUOTE_NONNUMERIC,
    )
    writer.writeheader()
    for row in table:
        writer.writerow(row)

我認為您正在尋找csv.QUOTE_NONNUMERIC

您可以,但是您需要兩個不同的編寫器,因為顯然您想引用標頭而不是數據行:

with open('output1.csv', 'w') as csvfile:
    quoted = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter=separator, quoting=csv.QUOTE_ALL)
    quoted.writeheader()

    writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter=separator)
    for row in table:
        writer.writerow(row)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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