【发布时间】:2017-03-01 04:28:47
【问题描述】:
假设我有这样的文本字符串:
- 富士通 LifeBook E734 13.3" i5 2.5GHz/4Gb RAM/500Gb SSHD 类似全新
- Mac Pro,2009 年初 4 核 2.66GHz Intel Xeon/16Gb RAM/1Tb HD
我想解析成品牌、型号、处理器、屏幕尺寸、高清尺寸、RAM、条件
我想知道,解析这些字符串的最 Pythonic 方式是什么?
目前,我正在做以下事情:
- 迭代计算机品牌和型号的静态列表
- 如果匹配,则将其从字符串中拉出
- 用“”和“/”分割字符串。
- 使用
is x in y来:- 查找 '"' 和 "in." 以查找大小。
- 查找“GHz”以了解处理器速度。
- 查找“Mb”、“Gb”、“Tb”。
这里有一些示例代码:
import re
data={}
complist = {'make':['Apple','Toshiba','HP', 'Fujitsu'...],
'model':['Air','Surface','Zenbook','Lifebook','Mac Pro',...],
'condition':['New','Used','Refurbished'...]}
string = 'Fujitsu LifeBook E734 13.3" i5 2.5GHz/4Gb RAM/500Gb SSHD Like NEW'
for comparison in complist :
for compare in complist[comparison]:
if compare in string:
data[comparison]=compare
string = string.replace(compare, '')
stringsplit=re.findall(r"[\w']+", string )
for i,s in enumerate(stringsplit):
if any(key in s for key in ['Mb','Gb','Tb']):
...
data['Ram']=...
if any(...
我可以强制执行此操作,但“...”是我正在寻找一些指导的地方。此外,第一部分可能也可以更有效地完成。
非常感谢任何帮助。
【问题讨论】: