用于 Unicode 字符分割的 split 函数

2 投票
2 回答
651 浏览
提问于 2025-04-17 13:30

我在下面的代码中无法分割unicode字符\u2013。

actualdata=metatry['content'].split("-")
print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+actualdata[0]
dat=actualdata[0].split("\u2013")
print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+dat[0]
productlist.append(dat[0])

输出中仍然保留了\u2013,即使它存在。希望有人能帮我解决这个问题。

2 个回答

1

metatry['content'] 是一个 unicode 对象,而不是普通的字符串。所以你用 split 的时候会出错:

>>> s = u"Samsung Galaxy Note II \u2013 Latest Smartphone in India "
>>> s.split("\u2013")
[u'Samsung Galaxy Note II \u2013 Latest Smartphone in India ']

你需要用 unicode 字符 \u2013 来进行分割:

>>> s = u"Samsung Galaxy Note II \u2013 Latest Smartphone in India "
>>> s.split(u"\u2013")
[u'Samsung Galaxy Note II ', u' Latest Smartphone in India ']

顺便说一下:你提到你在使用 Beautiful Soup。Beautiful Soup 只使用 unicode 字符串

2

试着在 '\u2013' 后面加上 'u',因为 metatry['content'] 是一个 Unicode 字符串:

u"Samsung Galaxy Note II \u2013 Latest Smartphone in India ".split(u'\u2013')

撰写回答