Base.py:Unicode相等比较无法在

时间:2016-08-05 10:37:35

标签: python django unicode

我正在研究几个相关的问题,这些问题对待同一个问题,但我仍然没有办法解决它。

事实证明,每次执行与Django相关的命令时,它都会打印出预期的输出以及类似的内容:

/Library/Python/2.7/site-packages/django/db/backends/sqlite3/base.py:307: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
return name == ":memory:" or "mode=memory" in force_text(name)

以下是该行的背景:

def is_in_memory_db(self, name):
    return name == ":memory:" or "mode=memory" in force_text(name)

尽管Django服务器正常工作,但总是在屏幕上打印出这条消息会让人感到烦恼。那么,为什么会发生这种情况呢?如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

使用decode('utf-8')进行正确比较:

name.decode('utf-8') == ":memory:" or "mode=memory" in force_text(name)

使用完整信息:

Unicode HOWTO

Solving Unicode Problems in Python 2.7