我正在解析一个大型DBF文件以导入到mongodb。
DBF文件中的一个字段称为Description
,这就像
WOMEN'S CC CROPPED TOP T-SHIRT - MELANGE GREY - S
WOMEN'S CC CROPPED TOP T-SHIRT - MELANGE GREY - M
WOMEN'S CC CROPPED TOP T-SHIRT - WHITE- L
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -XL
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -2XL
WOMEN'S CC CROPPED TOP T-SHIRT- WHITE -3XL
JUNIOR EP ORGANIC T-SHIRT - YELLOW- 3-4 YRS
JUNIOR EP ORGANIC T-SHIRT - YELLOW - 5-6 YRS
EP ORGANIC BIB - PINK -ONE SIZE
分割这个内容的最佳方式是什么,以便我拥有product name
,colour
和size
?
在大多数情况下,我可以这样做:
try:
description, colour_name, size = style_meta_attributes['CN_DESC'].split('- ')
if colour_name not in colour_names:
colour_names.append(colour_name)
if size not in sizes_names:
sizes_names.append(size)
except:
try:
description, colour_name, size = style_meta_attributes['CN_DESC'].split(' -')
...
每个splits = [' - ', '- ', ' -', ' -', ' - ', '-']
的
但这确实有效,因为我有T-SHIRT
或3-4 YRS
任何建议都非常感谢。
答案 0 :(得分:2)
尝试
re.split(r'\s+-\s*|\s*-\s+', description)
这个想法是在分隔符之前或之后(或两边)要求空格。