【问题标题】:Special Unicode Characters are not removed in Python 3Python 3 中不会删除特殊的 Unicode 字符
【发布时间】:2017-07-12 00:13:35
【问题描述】:

我有一个包含单词的keys 列表。当我发出这个命令时:

for key in keys:
  print(key)

我在终端得到正常输出。

但是当我使用print(keys) 打印整个列表时,我得到了这个输出:

我尝试过使用key.replace("\u202c", '')key.replace("\\u202c", '')re.sub(u'\u202c', '', key),但没有一个能解决问题。 我也尝试了这里的解决方案,但它们都没有奏效:

Replacing a unicode character in a string in Python 3

Removing unicode \u2026 like characters in a string in python2.7

Python removing extra special unicode characters

How can I remove non-ASCII characters but leave periods and spaces using Python?

我使用 Beautiful Soup 从 Google 趋势中抓取了这个,并从 get_text() 检索了文本 同样在Google Trends Page的页面源码中,列出的词如下:

当我直接从页面源粘贴到这里的文字时,粘贴的文字没有这些不寻常的符号。

【问题讨论】:

标签: python regex string unicode


【解决方案1】:

您可以使用 strip 删除字符。

>>> keys=['\u202cABCD', '\u202cXYZ\u202c']
>>> for key in keys:
...     print(key)
... 
ABCD
XYZ‬
>>> newkeys=[key.strip('\u202c') for key in keys]
>>> print(keys)
['\u202cABCD', '\u202cXYZ\u202c']
>>> print(newkeys)
['ABCD', 'XYZ']
>>> 

尝试了你的一种方法,它确实对我有用:

>>> keys
['\u202cABCD', '\u202cXYZ\u202c']
>>> newkeys=[]
>>> for key in keys:
...     newkeys += [key.replace('\u202c', '')]
... 
>>> newkeys
['ABCD', 'XYZ']
>>> 

【讨论】:

  • 这对我有用!关于为什么我之前尝试的方法不起作用的任何见解?
  • @HimanshuAhuja 我尝试了你的 1 种方法,它在 python3 中对我有用
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 2014-05-04
  • 1970-01-01
相关资源
最近更新 更多