s1 = "[('纸张', '木棉纯白艺术纸'), ('相册尺寸', '8*8'), ('纸质软封皮', '标准牛皮纸')]"
上面的字符串s1是一个列表格式的字符串,将s1中的列表中的每一个元素(每一个元素都是元组)取出来。
使用正则表达式,将元组匹配出来
import re
items = re.findall(r'[(].*?[)]', s1)
print(items)
for item in items:
print(item,type(item))
提取出的列表中的每一项元素,都是元组格式的字符串
>>
["('纸张', '木棉纯白艺术纸')", "('相册尺寸', '8*8')", "('纸质软封皮', '标准牛皮纸')"]
>>
('纸张', '木棉纯白艺术纸') <class 'str'>
('相册尺寸', '8*8') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'str'>
我该如何把字符串元素转化为元组,知识盲区太大,我只想到两种方法,一种是替换和分隔,一种是正则提取。
1 通过正则提取
for item in attrs:
print(item,type(item))
ele_lst = re.findall("['](.*?)[']", item)
tup_ele = tuple(ele)
print(tup_ele,type(tup_ele))
得到结果:
('纸张', '木棉纯白艺术纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
('相册尺寸', '8*8') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
('纸质软封皮', '标准牛皮纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
2 使用replace和split处理字符串
for item in attrs:
print(item,type(item))
ele = item.replace("(","").replace(")","").split(",")
ele_tup = ()
for e in ele:
ele_tup = ele_tup + (e.strip().replace("'",""),)
print(ele_tup,type(ele_tup))
结果输出
('纸张', '木棉纯白艺术纸') <class 'str'>
('纸张', '木棉纯白艺术纸') <class 'tuple'>
('相册尺寸', '8*8') <class 'str'>
('相册尺寸', '8*8') <class 'tuple'>
('纸质软封皮', '标准牛皮纸') <class 'str'>
('纸质软封皮', '标准牛皮纸') <class 'tuple'>
有过有简单高效的处理方法,请留言,让我学习一下。OV
409

被折叠的 条评论
为什么被折叠?



