[英]TypeError upon merely opening a file with csv.DictReader?
我刚刚通过表单上传了这个 CSV 文件,并将其发布到我的 Python CGI 脚本中。 上传似乎已成功完成。 文件夹的权限是 777,文件的权限是 755。
>>> import csv
>>> csvHandle = open('files/TestData.csv', "rb")
>>> csvRawRecordDicts = csv.DictReader(csvHandle)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: __init__() takes at least 3 arguments (2 given)
这些值如下:
csvRawRecordDicts undefined,
csv = <module 'csv' from '/usr/lib/python2.3/csv.pyc'>,
csv.DictReader = <class csv.DictReader>,
csvHandle = <open file 'files/TestData.csv', mode 'rb'>
该代码在我使用 Python 2.5 的本地计算机上运行良好。 错误发生在 2.3。
调试这样的东西的思考过程是什么? 我从哪里开始寻找?
您可以做以下几件事:
DictReader
至少需要两个参数,而您正在传递一个>>> help(csv.DictReader)
并得出相同的结论。 由于阅读文档可能会解释第二个参数应该是fieldnames
(我认为列表就足够了),重要的是此信息已在错误消息中传达!
Silent Ghost 所说的所有内容,以及:
重点的变化:在我看来,最重要的一点是仔细阅读错误消息。 在这种情况下,它简单明了地告诉您,您需要提供另一个参数。 检查帮助(或您正在运行的 Python 版本的文档)如下...
另一点:确保您了解您的代码在做什么。 csv.DictReader() 不打开文件。 文件系统权限不相关——您已经打开文件并将句柄传递给 csv.DictReader()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.