类型错误:'unicode'没有缓冲区接口。

5
请告诉我如何修复它。我遇到了这个错误:
TypeError: 'unicode' does not have the buffer interface

3
如果您希望我们帮助您修复代码,请提供一个 MCVE。如果我们看不到您编写的内容,我们只能猜测您可能出错的多种方式,这使得调试变得不可能;我们只能提供非常笼统的提示。请务必提供一个最小化、完整的示例,以便于我们更好地理解和解决您的问题。 - abarnert
这是一切:https://github.com/icefromtexas/sched - HeyYep
一个完整的程序不是MCVE。请阅读链接。此外,你的问题必须有意义,不能依赖于评论或更糟糕的是链接来回答,因为它们可能会在未来改变或消失。请阅读帮助的其余部分。 - abarnert
只是一个关于编程的注释:b'something' vs u'something' vs 'something' - jmunsch
2个回答

13
您有一个Unicode字符串。您正在尝试调用一个需要类似于str的类型(如str、bytearray或支持缓冲区接口的任何其他类型)的函数。因此,您会收到错误消息,就像您尝试调用需要类似于数字的类型的函数一样。
最有可能的问题是,您需要将unicode编码为str,或者需要调用一个需要unicode而不是str的函数。但是,如果没有看到您的任何代码,很难给出更具体的答案。
我可以给您两个通用建议,这可能有所帮助:
  1. 阅读Unicode HOWTO。如果你不理解,请寻求帮助,并继续阅读,直到你理解整个内容,并且这个问题的答案显而易见。

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


谢谢!我只是不明白为什么会出现这个错误,因为之前我使用了相同的代码,没有出现任何错误... - HeyYep
@HeyYep:由于您没有展示您使用的代码,我们无法做出更多的猜测。但我猜想,如果它真的是“相同的代码”,那么上一次您使用了str输入,而这一次您使用了unicode输入,因此它的工作方式不同。 - abarnert

1

由于存在一个Flask标签,所以出现了一个错误,在werkzeug中出现了这个错误信息。因此,请更新到最新版本,问题就会解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接