我的字符串似乎有很多空格(实际上在每个符号之间我都看到一个空格)。为了清楚起见,这是字符串:
{ " d a t a " : { " i d " : " 1 0 b a 8 7 3 8 - b 0 0 9 - 4 1 2 0 - 9 e c 1 - 4 1 7 a 6 e a 1 a 6 1 f " , " t i m e " : 1 4 4 5 2 6 0 9 8 6 7 5 2 } , " e x p i r e s " : 1 4 5 3 0 9 6 7 8 6 7 5 2 }
我尝试以通常的方式删除空白:
z = z.replace(" ","")
但这是行不通的。例如下面的代码:
print type(z), len(z)
z = z.replace(" ","")
print type(z), len(z)
打印以下内容:
<type 'str'> 198
<type 'str'> 198
因此,除去空格后,字符串的长度与以前相同。除此之外,我还将新字符串(应该删除空格)保存到文本文件中。当我使用文本编辑器打开该文件时,我确实看到了空格!如果我尝试使用文本编辑器(通过搜索和替换)将其删除,则会将其删除。
因此,我的问题是为什么Python无法删除这些“特殊”空格,以及如何删除它们?
我只是厌倦了使用ord(c),对于我解释为空格的字符,我得到了0。
它指示输入数据是utf-16文本。如果零字节后面跟随着看起来是ascii字符的字符,b'a\0'
则为'utf-16le'
(little-endian):
>>> b'd\0a\0t\0a\0'.decode('utf-16le')
u'data'
不要用.replace(b'\0', b'')
; 它将在第一个非ASCII字符上中断,例如,b'\xac '
(使用utf-16le字符编码编码的欧元符号)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句