2017-08-23 69 views
0

我試圖定義一個新的格式:蟒蛇 - 類型錯誤: 「引用」 必須是整數

import csv 
f = open("file.csv") 
reader = csv.reader(f) 

class my_dialect(csv.Dialect): 
    lineterminator = '\n' 
    delimiter: ';' 
    quotechar: '"' 

reader = csv.reader(f, dialect=my_dialect) 

輸出:

TypeError         Traceback (most recent call last) 
<ipython-input-121-0a8ad3677c01> in <module>() 
----> 1 reader = csv.reader(f, dialect=my_dialect) 

TypeError: "quoting" must be an integer 

從技術文檔:

Dialect.quoting Controls when quotes should be generated by the writer and recognised by the reader. It can take on any of the QUOTE_* constants (see section Module Contents) and defaults to QUOTE_MINIMAL.

那是什麼意思?

+3

這甚至不是有效的Python。 – chepner

+1

如果你只是使用'csv',不知道爲什麼這個標籤是熊貓。 –

+1

您需要導入並使用'QUOTE_MINIMAL'的常量值,或其他 –

回答

2

首先,您的代碼中存在與您的原始問題無關的語法錯誤,所以請確保這些代碼被處理(賦值運算符爲「=」,而不是「:」)。如果你添加引用到你的班級,它應該修復你得到的錯誤。你的代碼可能看起來像這樣 -

#! /usr/bin/python 

import csv 
f = open("file.csv") 
reader = csv.reader(f) 

class my_dialect(csv.Dialect): 
    lineterminator = '\n' 
    delimiter= ';' 
    quotechar= '"' 
    quoting = csv.QUOTE_MINIMAL 

reader = csv.reader(f, dialect=my_dialect) 
+1

什麼樣的語法錯誤?哪裏?說這些錯誤修復他們不會幫助OP。請解釋一下如何解決這些問題 –

+1

上面添加的代碼解決了語法問題,但我在編輯中添加了我的帖子,以幫助解釋我所指的內容。 –

+0

非常感謝。我不能相信我沒有意識到我使用冒號而不是'='... –

相關問題