我稱之爲__repr__()
功能上對象x
如下:如何使__repr__返回unicode字符串
val = x.__repr__()
,然後我想val
字符串存儲到數據庫SQLite
。問題是 0123'應該是unicode。
我想這沒有成功:
val = x.__repr__().encode("utf-8")
和
val = unicode(x.__repr__())
你知道如何糾正呢?
我使用Python 2.7.2
我稱之爲__repr__()
功能上對象x
如下:如何使__repr__返回unicode字符串
val = x.__repr__()
,然後我想val
字符串存儲到數據庫SQLite
。問題是 0123'應該是unicode。
我想這沒有成功:
val = x.__repr__().encode("utf-8")
和
val = unicode(x.__repr__())
你知道如何糾正呢?
我使用Python 2.7.2
repr(x).decode("utf-8")
和unicode(repr(x), "utf-8")
應該工作。
對象的表示不應該是Unicode。定義__unicode__
方法並將對象傳遞給unicode()
。
我遇到了類似的問題,因爲我使用repr將文本從列表中拉出。
b =['text\xe2\x84\xa2', 'text2'] ## \xe2\x84\xa2 is the TM symbol
a = repr(b[0])
c = unicode(a, "utf-8")
print c
>>>
'text\xe2\x84\xa2'
我終於嘗試加入來獲取文本淘汰之列,而不是
b =['text\xe2\x84\xa2', 'text2'] ## \xe2\x84\xa2 is the TM symbol
a = ''.join(b[0])
c = unicode(a, "utf-8")
print c
>>>
text™
現在,它的工作原理!!!!
我嘗試了幾種不同的方法。每次我用unicode函數使用repr時,它都不起作用。我必須使用join或者像下面的變量e那樣聲明文本。
b =['text\xe2\x84\xa2', 'text2'] ## \xe2\x84\xa2 is the TM symbol
a = ''.join(b[0])
c = unicode(repr(a), "utf-8")
d = repr(a).decode("utf-8")
e = "text\xe2\x84\xa2"
f = unicode(e, "utf-8")
g = unicode(repr(e), "utf-8")
h = repr(e).decode("utf-8")
i = unicode(a, "utf-8")
j = unicode(''.join(e), "utf-8")
print c
print d
print e
print f
print g
print h
print i
print j
*** Remote Interpreter Reinitialized ***
>>>
'text\xe2\x84\xa2'
'text\xe2\x84\xa2'
textâ„¢
text™
'text\xe2\x84\xa2'
'text\xe2\x84\xa2'
text™
text™
>>>
希望這會有所幫助。
在Python2,您可以定義兩種方法:
#!/usr/bin/env python
# coding: utf-8
class Person(object):
def __init__(self, name):
self.name = name
def __unicode__(self):
return u"Person info <name={0}>".format(self.name)
def __repr__(self):
return self.__unicode__().encode('utf-8')
if __name__ == '__main__':
A = Person(u"皮特")
print A
在Python3,只是定義__repr__
會確定:
#!/usr/bin/env python
# coding: utf-8
class Person(object):
def __init__(self, name):
self.name = name
def __repr__(self):
return u"Person info <name={0}>".format(self.name)
if __name__ == '__main__':
A = Person(u"皮特")
print(A)
「如何讓'__repr__'返回一個unicode字符串」 - 通過安裝Python 3. – 2016-08-27 09:36:10