这个图片清楚了,我大概猜一下就是就是要把字符串的列表变成真正的列表?
首先把false变成False(因为python中False要求F大写)
然后用eval就行了
string = re.sub('false','False',string)
li = eval(re.search(r'\[\[[\s\S]+\]\]',string).group())
追问把你的string 直接复制过来我看看时间长应该回溯的问题
把[\s\S]+改成[\s\S]+?
改成懒惰查找
嗯,改成精确查找就OK了,速度相当的快,也没有报错了,就是前面和后面不需要的内容也都给提取出来了,我那个文件数据太大了,我是直接打开的文本,进行查抄,然后手工精简数据进行截的图发上来的,主要就是把所有文档中("year":)前面所有的内容,和 ("fieldflashData":)后面所有的内容全部删掉,包括 括号中的字符串也不需要,只保留中间的就搞定了
追答列表中也有你不要的数据?简单方法
对列表进行循环保留你需要的。你告诉我一下列表中有那些是需要的哪些是不需要的。
你把你的列表举个例子我看看包括一下你需要的和不需要的就好了。不用太多内容。
大哥,这个 year 字段在后面文档中还会出现一次的,只要截取前面第一次出现的这个year字段就可以了
大哥,这个year字段在后面还会出现一次的,所以只要截取前面第一次出现的year,然后删除前面的内容就可以了,后面的就截取到fieldflashData这个字段就可以了,这个字段只有一个
string1 = re.search(r'year":\n(\[\[[\s\S]+?\]\])',string).group(1)
string1 = re.sub('false','False',string1)
li = eval(string1)
哥,不知道为什么我这边是报错的,不能运行了,是我哪里弄错了吗?
哦 你数据中Year头一个字母y是大写
string1 = re.search(r'Year":\n(\[\[[\s\S]+?\]\])',string).group(1)
我刚刚看了下,不是大写的,year全都是小写,刚刚试了下,还是报的一样错误,估计应该还是哪里正则语法不对
筛选两遍,第一遍以非贪婪模式找出所有匹配有...中的字符串,第二遍剔除其中含有非法字符的匹配结果。
test_str = '有干燥剂中有干燥中有发明了XX技术中有发明了XX中'