json - python中用正則表達式去掉字符串中的冒號
問題描述
初學python,最近嘗試爬數據,json字符串的value中有冒號,需要去掉。我的代碼如下。 a和b都是value中會有冒號的字符串
import rea = 'Title:’Intern: Customer Experience + Innovation (CX+I) Intern Brands’'b = 'cmp:’Adecco: USA’,cmpesc:’Adecco: USA’'result = re.sub(’^(?:Title|cmp|cmpesc):.+(:)’,’’, a)
代碼執行結果是只剩 Customer Experience + Innovation (CX+I) Intern Brands’,之前的內容全被刪除了,而我想要的效果是只刪intern之后的那個冒號(title后的冒號要保留)。請問大家該如何修改?
問題解答
回答1:import reresult = re.sub(’^(Title|cmp|cmpesc:)(.+):(.*)’,’123’,'Title:’Intern: Customer Experience + Innovation (CX+I) Intern Brands’')print(result) # Title:’Intern Customer Experience + Innovation (CX+I) Intern Brands’回答2:
這樣的話:
’’.join(re.split(’(?<![Title|cmp|cmpesc]):’,a))
就好了
回答3:果然是我看錯題目了....
回答4:不用去掉冒號,直接變成字典就行了~
>>> a = 'Title:’Intern: Customer Experience + Innovation (CX+I) Intern Brands’';b = 'cmp:’Adecco: USA’,cmpesc:’Adecco: USA’'>>> dict([s.split(’:’,1) for s in a.split(’,’)]){’Title’: '’Intern: Customer Experience + Innovation (CX+I) Intern Brands’'}>>> dict([s.split(’:’,1) for s in b.split(’,’)]){’cmpesc’: '’Adecco: USA’', ’cmp’: '’Adecco: USA’'}>>>
寫成函數
a = 'Title:’Intern: Customer Experience + Innovation (CX+I) Intern Brands’'b = 'cmp:’Adecco: USA’,cmpesc:’Adecco: USA’'def fn(x): return dict((s.split(’:’,1) for s in x.replace('’','').split(’,’)))print(fn(a))print(fn(b))# {’Title’: ’Intern: Customer Experience + Innovation (CX+I) Intern Brands’}# {’cmp’: ’Adecco: USA’, ’cmpesc’: ’Adecco: USA’}
相關文章:
1. docker-machine添加一個已有的docker主機問題2. java - mybatis會自己緩存自己生成過的prestatement嗎3. java - 原生CGLib內部方法互相調用時可以代理,但基于CGLib的Spring AOP卻代理失效,為什么?4. node.js - node express 中ajax post請求參數接收不到?5. java - tomcat服務經常晚上會掛,求解?6. apache - nginx 日志刪除后 重新建一個文件 就打不了日志了7. 怎么能做出標簽切換頁的效果,(文字內容隨動)8. chrome瀏覽器怎么使用9. mysql - mongo如何對一個collection進行順序上的調整呢?10. php查詢MySQL過多的時候網頁會掛掉,請問怎么解決
