如何使 __repr__ 返回 unicode 字符串
我在对象 x
上调用 __repr__()
函数,如下所示:
val = x.__repr__()
然后我想存储 val
字符串到 SQLite
数据库。问题是 val
应该是 unicode。
我尝试了这个但没有成功:
val = x.__repr__().encode("utf-8")
和
val = unicode(x.__repr__())
你知道吗?知道如何纠正这个问题吗?
我正在使用Python 2.7.2
I call a __repr__()
function on object x
as follows:
val = x.__repr__()
and then I want to store val
string to SQLite
database. The problem is
that val
should be unicode.
I tried this with no success:
val = x.__repr__().encode("utf-8")
and
val = unicode(x.__repr__())
Do you know how to correct this?
I'm using Python 2.7.2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对象的表示不应该是 Unicode。定义
__unicode__
方法并将对象传递给unicode()
。The representation of an object should not be Unicode. Define the
__unicode__
method and pass the object tounicode()
.repr(x).decode("utf-8")
和unicode(repr(x), "utf-8")
应该可以工作。repr(x).decode("utf-8")
andunicode(repr(x), "utf-8")
should work.我遇到了类似的问题,因为我使用 repr 从列表中提取文本。
我终于尝试加入以将文本从列表中取出
现在它可以工作了!!!
我尝试了几种不同的方法。每次我将 repr 与 unicode 函数一起使用时,它都不起作用。我必须使用 join 或声明文本,如下面的变量 e 所示。
希望这有帮助。
I was having a similar problem, because I was pulling the text out of a list using repr.
I finally tried join to get the text out of the list instead
Now it works!!!!
I tried several different ways. Each time I used repr with the unicode function it did not work. I have to use join or declare the text like in variable e below.
Hope this helps.
在Python2中,可以定义两个方法:
在Python3中,只需定义
__repr__
即可:In Python2, you can define two methods:
In Python3, just define
__repr__
will be ok: