我有一个不断变化的文本文件,其中包含来自Gmail API的邮件。我需要解析它的内容。我的文本文件包含消息的ID,消息,发件人详细信息和日期:
15335b114b093448(消息ID)::名称:SINDHUJA, 需要的服务:管道,城市:班加罗尔,电子邮件ID:[email protected],手机:9987654434 ::星期三,2016年3月2日04:58:29 +0000 :: Flipkart(合作伙伴)[email protected] :::
15335254a7e5677a ::名称:HALEN, 需要的服务:电工,城市:CHENNAI,电子邮件ID:[email protected],手机:934554434 :: :: Wed,2016年3月2日07:36 :37 +0530(IST)::印度时报[email protected] ::::
我该如何解析?我尝试了代码:
>>>rawProfiles='''
15335b114b093448::NAME : SINDHUJA,
SERVICE REQUIRED: PLUMBER ,CITY :BANGALORE, EMAIL ID : [email protected] ,MOBILE : 9987654434:: Wed, 02 Mar 2016 04:58:29 +0000::Flipkart <[email protected]>:::
15335254a7e5677a::NAME : HALEN,
SERVICE REQUIRED: ELECTRICIAN ,CITY :CHENNAI, EMAIL ID : [email protected] ,MOBILE : 934554434:: ::Wed, 2 Mar 2016 07:36:37 +0530 (IST)::The Times of India <[email protected]>::::
'''
>>>profilesList=re.split(r'\n{1,}',rawProfiles)
>>>profilesList =[re.sub(r'\n',' ',profile) for profile in profilesList]
>>>profilesList =[re.split(r',',profile,maxsplit=2) for profile in profilesList]
>>>for profile in profilesList:
print profile
>>>profilesList =[map(str.strip,profile) for profile in profilesList]
>>>for profile in profilesList:
print profile
这给了我一个:nameError re not defined
。
编辑
该代码在python中。
我的示例输出应为:
合作伙伴 名称服务 城市移动电子邮件
Flipkart SINDHUJA PLUMBER班加罗尔9987654434 [email protected]
Times哈伦电工CHENNAI 9345544342 [email protected]
第二行的“合作伙伴”列存在一个小问题,但是awk可以作为您的开始。
BEGIN {
FS="::";
OFS="\t";
print "PARTNER\tNAME\tSERVICE\tCITY\tMOBILE\tEMAIL"
}
{
split($2,A,"[:,]");
if ($3 == " ")
{
split($5,B,"[:,]");
}
else
{
split($4,B,"[:,]");
}
split(B[1],C,"mail");
name=A[2];
service=A[4];
city=A[6];
mobile=A[10];
email=A[8];
partner=C[1];
sub("[(]partner[)]", "",partner);
print partner"\t"name"\t"service"\t"city"\t"mobile"\t"email;
}
出去:
PARTNER NAME SERVICE CITY MOBILE EMAIL
Flipkart SINDHUJA PLUMBER BANGALORE 9987654434 [email protected]
The Times of India HALEN ELECTRICIAN CHENNAI 934554434 [email protected]
您必须从(bash,zsh ..)shell运行它,并将其另存为what.awk
awk -f whatever.awk file
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句