Python:无法将unicode转换为字符串
我什么都试过了,但unicode就是不消失Python:无法将unicode转换为字符串,python,Python,我什么都试过了,但unicode就是不消失 col = "[u'$929.95']" unicoded_item = to_unicode(col) # [u'test'] print type(unicoded_item) # <type 'unicode'> if isinstance(unicoded_item, unicode): unicoded_item = unicoded_item.encode('utf8') print str(unicoded_
col = "[u'$929.95']"
unicoded_item = to_unicode(col) # [u'test']
print type(unicoded_item) # <type 'unicode'>
if isinstance(unicoded_item, unicode):
unicoded_item = unicoded_item.encode('utf8')
print str(unicoded_item) # [u'test']
col=“[u'$929.95']”
unicoded_item=to_unicode(col)#[u'test']
打印类型(Unicode_项目)#
如果isinstance(unicode编码的_项):
unicoded_项目=unicoded_项目。编码('utf8')
打印str(Unicode#u项目)#[u'test']
我原以为整个
[u'
和']
会消失,但它似乎没有转化。因此,当我将此字符串保存到文本文件时,文本文件将包含所有unicode python字符[u'test']
,而不是test
,它可能不会直接处理问题,但您可以使用replace()函数交换[u'
免费。它可能不会直接处理此问题,但您可以使用replace()函数将[u'
免费交换。变量col
可能包含一个包含一个unicode字符串元素的列表
unicode\u item=to\u unicode(col)
然后创建一个表示该列表的unicode字符串:u“[u'test']”
然后使用unicode\u item.encode('utf8')
将此unicode字符串转换为字符串
这将为您提供一个(字节)字符串“[u'test']”
解决方案是访问
col
中的元素,而不是转换整个col
。如果col
始终只包含一个元素,则只需将col
的用法替换为col[0]即可。变量col
可能包含一个包含一个unicode字符串元素的列表
unicode\u item=to\u unicode(col)
然后创建一个表示该列表的unicode字符串:u“[u'test']”
然后使用unicode\u item.encode('utf8')
将此unicode字符串转换为字符串
这将为您提供一个(字节)字符串“[u'test']”
解决方案是访问col
中的元素,而不是转换整个col
。如果col
始终只包含一个元素,您只需将col
的用法替换为col[0]
,您的字符串不是unicode。它是一个常规字符串。您可以获得美元
金额如下:
res = "[u'$929.95']".split("\'",)[1]
print(res)
$929.95
但是如果它是带有u'someletters的unicode,则要删除unicode str上的u'ran str()。
.您的字符串不是unicode。它是常规字符串。您可以获得美元
金额如下:
res = "[u'$929.95']".split("\'",)[1]
print(res)
$929.95
但是如果它是带有u'someletters的unicode,则要删除unicode str上的u'ran str()。
.您有一个表示列表对象的字符串。解决此问题的最简单方法是计算字符串以提取对象:
>>> import ast
>>> col = "[u'$929.95']"
>>> col2 = ast.literal_eval(col)
>>> type(col)
<type 'str'>
>>> type(col2)
<type 'list'>
>>> col2[0]
u'$929.95'
>>> str(col2[0])
'$929.95'
导入ast
>>>col=“[u'$929.95']”
>>>col2=ast.literal\u eval(col)
>>>类型(col)
>>>类型(col2)
>>>col2[0]
u'$929.95'
>>>str(col2[0])
'$929.95'
您有一个表示列表对象的字符串。解决此问题的最简单方法是计算字符串以提取对象:
>>> import ast
>>> col = "[u'$929.95']"
>>> col2 = ast.literal_eval(col)
>>> type(col)
<type 'str'>
>>> type(col2)
<type 'list'>
>>> col2[0]
u'$929.95'
>>> str(col2[0])
'$929.95'
导入ast
>>>col=“[u'$929.95']”
>>>col2=ast.literal\u eval(col)
>>>类型(col)
>>>类型(col2)
>>>col2[0]
u'$929.95'
>>>str(col2[0])
'$929.95'
澄清一下:你得到的是
[u'test']
还是u'test'
?这是因为你得到的是列表的字符串表示形式,而不是字符串。当你键入打印(col[0])
时,你得到的是什么?t
或test
?@c909得到的是[u'test']
@BurhanKhalid omg…我明白了,我想知道为什么这个类型不说'list',但是如果它是一个列表,那是因为你在做type(unicoded\u item)
;当你做unicoded\u item=to\u unicode(col)
时,它会把列表的str表示形式转换成unicode。如果你做type(col)
你会得到正确的类型。澄清一下:你得到的是[u'test']
还是u'test'
?这是因为你得到的是列表的字符串表示形式,而不是字符串。当你键入打印(col[0])
时你得到了什么?t
或test
?@c909是得到的是[u'test']
@BurhanKhalid omg…我明白了,我想知道为什么这个类型不说'list',但是如果它是一个列表,那是因为你在做type(unicoded\u item)
;当你做unicoded\u item=to\u unicode(col)
时,它会把列表的str表示形式转换成unicode。如果你做type(col)
您将获得正确的类型。我发现col已经是一个字符串。它不是一个列表。因此我转换了一个字符串,如[u'$449.97']
转换为unicode失败。需要将unicode的字符串表示形式转换为unicode,然后再转换回字符串。好的,那么请在下一个问题中包含更多的代码。因为您没有提供导致col
的赋值,所以这里的每个人都只能猜测结果的原因。@c909我已经这样做了。我想我可能只是猜测一下我在文本之间找到的东西是col已经是一个字符串了。它不是一个列表。所以我转换了一个字符串,比如[u'$449.97']
转换为unicode失败。需要将unicode的字符串表示形式转换为unicode,然后再转换回字符串。好的,那么请在下一个问题中包含更多的代码。因为您没有提供导致col
的赋值,所以这里的每个人都只能猜测结果的原因。@c909我已经这样做了。我想我可能只是猜测一下在文本之间跟踪内容实际上这不是一个坏的解决方案,但我认为问题在于处理尾随的']
实际上这不是一个坏的解决方案,但我认为问题在于处理尾随的']
有时值col是干净的,这意味着它是$929.95
,我无法控制最终通过的数据类型,所以看起来我需要实现这一点。有时值是c