将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复]
Posted
技术标签:
【中文标题】将项目添加到列表时,python 中的奇怪问题是删除 \\xa0 和其他编码[重复]【英文标题】:Weird problem in python with removing \xa0 and other encoding when adding items to list [duplicate]将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复] 【发布时间】:2021-09-12 10:47:08 【问题描述】:我有以下代码:
x = "$30.00\xa0USD\u202c"
e = x.strip()
print (e)
group = ["a", e.strip(), "b"]
print (group)
这是它给我的结果:
$30.00 USD
['a', '$30.00\xa0USD\u202c', 'b']
我想从添加到列表中的项目中删除“\xa0”,但 .strip() 似乎不起作用,我该如何解决?
【问题讨论】:
strip
不带参数返回删除了前导和尾随空格的字符串副本。 \xa0
不是前导或尾随。也许您想改用replace
?
how-to-remove-xa0-from-string-in-python '\xa0'
实际上是 Latin1 (ISO 8859-1) 中的不间断空格,也是 chr(160)。您应该用空格替换它。 string = string.replace(u'\xa0', u' ')
【参考方案1】:
strip()
去除两边的空格,并且没有空格可以从你传入的字符串中去除。不清楚你希望发生什么或为什么;可能正确的解决方案是首先修复产生该字符串的任何内容。
如果你想放弃\xa0
,那么……就这么说吧。
x = x.replace('\xa0', '')
如果您只想从字符串中提取纯可打印的 ASCII,可以尝试使用正则表达式。
import re
x = ' '.join(re.findall('[ -~]+', x))
如果你想剥离\u202c
,当然也可以这样做。
x = x.strip('\u202c\u202f')
(我也加入了U+202F,只是为了表明它很容易做到。)
但同样,输入字符串中原始字节和 Unicode 的邪恶混合很可能是您处理早期损坏的迹象。如果你能解决这个问题,也许你将不再需要这些。
【讨论】:
以上是关于将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复]的主要内容,如果未能解决你的问题,请参考以下文章