分割内部有\ u的字符串

时间:2018-09-30 16:40:45

标签: python string unicode split

我知道u“字符串”是指Unicode。如果我没记错的话,这就是我遇到的问题。我找不到一个最终可以帮助我将字符串分成2个字符串的解决方案,如果该字符串内部有'\ u'。

我有一个用“ \”除的字符串列表,其中第一部分是犯罪,第二部分是犯罪发生的位置。

例如:

SHOPLIFT, NE MILL PL 

VANDALISM, 136TH AVE NE 

SUSPICIOUS CIRCUMSTANCES, GARDEN WAY 

MENTAL PROBLEMS, NE WOODINVILLE DUVALL RD 

TRESPASS – 19200 BLK 168TH AVE NE

当我使用data.split(',')时,我得到以下结果:

[u'SHOPLIFT', u' NE MILL PL ']

[u'VANDALISM', u' 136TH AVE NE ']

[u'SUSPICIOUS CIRCUMSTANCES', u' GARDEN WAY ']

[u'MENTAL PROBLEMS', u' NE WOODINVILLE DUVALL RD ']

[u'TRESPASS \u2013 19200 BLK 168TH AVE NE ']

如您所见,split方法在前4个项目中效果很好。第五项:

[u'TRESPASS \u2013 19200 BLK 168TH AVE NE ']

是我遇到的问题。

如何拆分该项目,使其显示以下内容:

[u'TRESPASS', u'2013 19200 BLK 168TH AVE NE ']

split('–')也不起作用

 TRESPASS – 19200 BLK 168TH AVE NE

出现以下错误:

'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

谢谢。

1 个答案:

答案 0 :(得分:1)

您看到的\ u2013告诉您“这是Unicode字符2013”​​(恰好是一个长破折号)。您可以在原始打印字符串中的“侵入”之后看到。听起来您想基于逗号或长破折号来分割字符串。

一种解决方案是将长破折号转换为逗号,然后在逗号上分割:

data.replace(u'\u2013',',').split(',')

第二种解决方法是使用re.split()

import re
re.split(u"[\,\u2013]", data)