2017-08-23 70 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

非常感谢。我不能相信我没有意识到我使用冒号而不是'='... –

相关问题