【问题标题】:TypeError: 'unicode' does not have the buffer interface [closed]TypeError:'unicode'没有缓冲区接口[关闭]
【发布时间】:2014-09-26 17:05:22
【问题描述】:

请告诉我如何解决它。我收到了这个错误:

TypeError: 'unicode' does not have the buffer interface

【问题讨论】:

  • 如果您希望我们帮助修复您的代码,请给我们一个MCVE。如果我们看不到你写的东西,我们只能猜测你可能写错的许多方式,这使得无法调试任何东西;我们所能做的就是给出非常笼统的提示。
  • 完整的程序不是 MCVE。阅读链接。此外,您的问题必须本身是有意义的,而不是依赖于 cmets——或者更糟糕的是,依赖于将来可能会改变或消失的链接——才能得到回答。阅读其余的帮助。
  • 只是一个注释b'something' vs u'something' vs 'something'

标签: python unicode interface flask buffer


【解决方案1】:

你有一个unicode 字符串。您正在尝试调用一个需要类似str 的类型的函数(strbytearray,任何其他支持缓冲区接口的函数)。所以你会得到一个错误,就像你试图调用一个需要类似数字类型的函数一样。

问题很可能是您 (a) 需要将 encode 您的 unicode 转换为 str,或者 (b) 需要调用采用 unicode 而不是 str 的函数。但是没有看到你的任何代码,很难给出更具体的答案。

我可以给你两条可能会有所帮助的一般建议:

  1. 阅读Unicode HOWTO。如果您不明白,请寻求帮助,并继续阅读,直到您完全理解为止,这个问题的答案是显而易见的。

  2. 使用 Python 3.x 而不是 2.x。它不会神奇地解决你所有的问题,但你通常会遇到更少的混合 Unicode 和非 Unicode 字符串问题,而且它们通常会更明显(主要是因为你通常只会处理Unicode 字符串)。

【讨论】:

  • 谢谢!我只是不明白这个错误是如何出现的,因为在我使用相同的代码之前并且没有错误......
  • @HeyYep:由于您没有向我们展示您使用的代码,因此只能猜测。但我猜,如果它真的是“相同的代码”,你上次输入了str,这次输入了unicode,因此它的工作方式不同。
【解决方案2】:

因为有烧瓶标签。 werkzeug 中有一个带有此错误消息的错误。所以更新到最新版本应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2014-08-09
    • 2023-03-10
    相关资源
    最近更新 更多