【问题标题】:"TypeError: bad argument type for built-in operation"“TypeError:内置操作的参数类型错误”
【发布时间】:2012-07-10 23:48:30
【问题描述】:

在什么情况下 Python 会抛出这个错误:

"TypeError: bad argument type for built-in operation"

这行代码报错:

csv.reader(open(file_name), dialect=dialect)

我试图重现它,但我得到的最接近的是这个错误:

"TypeError: coercing to Unicode: need string or buffer, bool found"

我尝试过在 Linux 上使用 Python2.7 和 Python 2.5,在 Windows XP 上使用 Python 2.4

【问题讨论】:

  • 如果您遇到此消息,您应该已经得到了回溯。
  • 我被报告给我但我无法重现它,我得到的最接近的是另一个错误。这就是为什么我想知道在什么情况下会出现这个错误。
  • 错误信息是否来自同一个 Python 版本?

标签: python exception


【解决方案1】:

Python 2.4 中的csv.reader 存在已知错误;见http://mail.python.org/pipermail/tutor/2008-January/059758.html

一般来说,“内置操作的错误参数类型”到处都是,因为它是由PyErr_BadArgument CPython API 调用生成的异常文本。这意味着回溯不会有太大用处,因为异常是在 C 代码中引发的。最好的调试方法是在调试器下运行 Python 并在 PyErr_BadArgument 上设置断点。

【讨论】:

    【解决方案2】:

    我的猜测是 file_name 是一个布尔值,而不是 open() 期望的字符串或缓冲区。我不会很关心不同的信息。它们都是 TypeError,只是恰好一个比另一个更具体,可能是因为 Python 版本的一些差异。

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 2013-08-11
      • 2013-03-28
      • 2019-02-17
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多