如何从python中的字符串中删除此\ xa0?

时间:2014-09-26 21:53:58

标签: python unicode

我有以下字符串:

 word = u'Buffalo,\xa0IL\xa060625'

我不希望那里有“\ xa0”。我怎么能摆脱它?我想要的字符串是:

word = 'Buffalo, IL 06025

5 个答案:

答案 0 :(得分:11)

最强大的方法是使用unidecode module自动将所有非ASCII字符转换为最接近的ASCII等效字符。

字符\xa0(不是\xa如你所说)是NO-BREAK SPACE,最接近的ASCII等价物当然是常规空格。

import unidecode
word = unidecode.unidecode(word)

答案 1 :(得分:3)

如果你确定这是你不想要的唯一角色,你可以.replace

>>> word.replace(u'\xa0', ' ')
u'Buffalo, IL 60625'

如果你需要处理所有非ascii字符,编码和替换坏字符可能是一个好的开始......:

>>> word.encode('ascii', 'replace')
'Buffalo,?IL?60625'

答案 2 :(得分:2)

那里没有\xa。如果您尝试将其放入字符串文字中,那么如果您很幸运,您将会遇到语法错误,或者如果您感兴趣,它将会吞下下一个尝试过的字符不是,因为\x序列后面必须跟两个十六进制数字。

你拥有的是\xa0,这是角色U+00A0的转义序列,又名" NO-BREAK SPACE"。

我认为你想用空格替换它们,但无论你想做什么都很容易写:

word.replace(u'\xa0', u' ') # replaced with space
word.replace(u'\xa0', u'0') # closest to what you were literally asking for
word.replace(u'\xa0', u'')  # removed completely

答案 3 :(得分:1)

您可以轻松使用void Main() { var json = File.ReadAllText(@"c:\temp\json.txt"); // your json var output = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Target>>(json); } public class Target { [Newtonsoft.Json.JsonProperty("id")] public int Id { get; set; } [Newtonsoft.Json.JsonProperty("name")] public string Name { get; set; } [Newtonsoft.Json.JsonProperty("exchangeable")] public bool Exchangeable { get; set; } [Newtonsoft.Json.JsonProperty("members")] public bool Members { get; set; } [Newtonsoft.Json.JsonProperty("placeholder_id")] public int PlaceholderId { get; set; } [Newtonsoft.Json.JsonProperty("noted_id")] public int? NotedId { get; set; } } 删除所有unicodedata个字符。

\x...

答案 4 :(得分:0)

这似乎可以解决非ascii字符:

fixedword = word.encode('ascii','ignore')