Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python csvSchema 1.1.0的Len()问题_Python_Csv_Python 2.7_Python 3.x - Fatal编程技术网

Python csvSchema 1.1.0的Len()问题

Python csvSchema 1.1.0的Len()问题,python,csv,python-2.7,python-3.x,Python,Csv,Python 2.7,Python 3.x,好的,我正在使用python开源包通过我设置的规则进行csv验证,它似乎有一些非常过时的文档。我将检查文件中的每个字段,检查长度是否在它应该通过的规则中声明的最小长度/最大长度范围内。奇怪的是,事实并非如此。代码片段如下所示: class TestCsvStructure(BaseCsvStructure): a = StringColumn(blank = True, min_length = 0, max_length = 1000,)#4 bytes b = StringColumn(b

好的,我正在使用python开源包通过我设置的规则进行csv验证,它似乎有一些非常过时的文档。我将检查文件中的每个字段,检查长度是否在它应该通过的规则中声明的最小长度/最大长度范围内。奇怪的是,事实并非如此。代码片段如下所示:

class TestCsvStructure(BaseCsvStructure):

a = StringColumn(blank = True, min_length = 0, max_length = 1000,)#4 bytes
b = StringColumn(blank = True, min_length = 1, max_length = 3,)
c = StringColumn(blank = True, min_length = 0, max_length = 7,)
d = StringColumn(blank = True, min_length = 0, max_length = 3,
e = StringColumn(blank = True, min_length = 0, max_length = 8,)
f = StringColumn(blank = True, min_length = 0, max_length = 255,)
g = StringColumn(blank = True, min_length = 0, max_length = 255,)
h = StringColumn(blank = True, min_length = 0, max_length = 255,)
现在,当我传递文件时,第1列只有3个字符,但仍会产生错误:

饲料数量=5 [u'行5,第1列:值不能超过3',u'行5,第2列:值不能超过7',u'行5,第3列:值不能超过3',u'行5,第4列:值不能超过8',u'行5,第18列:值不能超过2',u'行5,第19列:值不能超过

(u'u'积极开展工作的人,“,“(u'积极开展活动的人,”,,“(u'活跃的人的主要名称,”,,“(u'主要名称,”,,“(u'u'115133'.[u'115133’””,,,,“[u'1151313'[u'115133’”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“,”[u']”,“[u']”,“[u']”,“[u']”,“[u']”,“[u']”,“[u']”,”,”“u”“u”“u”“”“u”“u”“”“u”“”“”“u”“”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“”“u”“”“u”“”“u”“”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“u”“”“u”“u”“u”“131']、“[u'女儿']、[u'否']、[u']、[u']、[u'30-Jun-2012']、[u']

如您所见,列1='chg'的长度为3,应该通过,但错误是[u'行5,列1:该值不能超过3'


任何有csvSchema 1.1.0软件包经验的人都可以提供帮助。

您是否以以下形式传递参数:TestCsvStructure([e1,e2,…,en],无行)


其中e是元素,no_line=CSV文件中当前行的编号。

为什么列的值作为列表的一个单独项目的报告版本…例如:
“[u'chg]”
(超过3个字符…)?完全正确-如果那一行是解析器得到的真正输入,那么第1列不是长度为3的'chg',而是长度为7.OMG的“[u'chg']”,我现在觉得很愚蠢。我只是花了2个小时浪费在这上面。该死。不,正如你在我的代码a、b、c中看到的那样……是参数(csv行中的字段/列).我为每个字段定义规则,并在CSV中逐行执行。当你说“我传递我的文件通过”时,可以更精确一些?你到底是如何传递你的文件的?好吧,我解决了,这只是unicode使长度变大了。我的错,无论如何,谢谢!