如何编写函数并以json格式创建新字段?

时间:2018-01-28 07:17:46

标签: python json

  

[{"否":1" source_link":" www.aa.com""品牌":& #34;高恩"" ITEM_NAME":"美丽""类别":"红色""消息&# 34;:"我的   电子邮件是abcdefg@gmail.com"," create_date":" 13 \ / 7 \ / 2017   20:04""日期":" 13 \ / 7 \ / 2017"},{"否":2" source_link":" www.bb.com""品牌":" Mik的"" ITEM_NAME":"猪肉& #34;"类别":"白色""消息":"我的   电子邮件是zxcvbg@gmail.com"," create_date":" 13 \ / 7 \ / 2017   20:04""日期":" 13 \ / 7 \ / 2017"}]

上面的文字是我的数据格式。我想创建一个新的字段,即电子邮件字段。电子邮件字段将用于从邮件字段中提取电子邮件。所以输出应该是这样的

  

' [{"否":1" source_link":" www.aa.com""品牌&# 34;:"高恩"" ITEM_NAME":"美丽""类别":"红色"&# 34;消息":"我的   电子邮件是   abcdefg@gmail.com",的"电子邮件",ABCDEFG @ gmail.com" 下," CREATE_DATE":" 13 \ / 7 \ / 2017   20:04""日期":" 13 \ / 7 \ / 2017"},{"否":2" source_link":" www.bb.com""品牌":" Mik的"" ITEM_NAME":"猪肉& #34;"类别":"白色""消息":"我的   电子邮件是   zxcvbg@gmail.com",的"电子邮件",zxcvbg @ gmail.com" " CREATE_DATE":" 13 \ / 7 \ / 2017年   20:04""日期":" 13 \ / 7 \ / 2017"}]'

以下是摘录电子邮件代码

import re
line = "aghkol@hotmail.com  This is my email"
match = re.search(r'[\w\.-]+@[\w\.-]+', line)
match.group(0)

运行此代码我将获得aghkol@hotmail.com。

1 个答案:

答案 0 :(得分:0)

import re    

A = [{"No.":1,"source_link":"www.aa.com","brand":"Gorn","item_name":"Beautiful","category":"Red","message":"My email is abcdefg@gmail.com","create_date":"13\\/7\\/2017 20:04","date":"13\\/7\\/2017"},{"No.":2,"source_link":"www.bb.com","brand":"Mik","item_name":"Pork","category":"White","message":"My email is zxcvbg@gmail.com","create_date":"13\\/7\\/2017 20:04","date":"13\\/7\\/2017"}]

for i in A:
    match = re.search(r'[\w\.-]+@[\w\.-]+',i["message"] )
    i["Email"] = match.group(0)

<强>输出

[{'category': 'Red', 'date': '13\\/7\\/2017', 'No.': 1, 'create_date': '13\\/7\\/2017 20:04', 'item_name': 'Beautiful', 'source_link': 'www.aa.com', 'brand': 'Gorn', 'message': 'My email is abcdefg@gmail.com', 'Email': 'abcdefg@gmail.com'}, {'category': 'White', 'date': '13\\/7\\/2017', 'No.': 2, 'create_date': '13\\/7\\/2017 20:04', 'item_name': 'Pork', 'source_link': 'www.bb.com', 'brand': 'Mik', 'message': 'My email is zxcvbg@gmail.com', 'Email': 'zxcvbg@gmail.com'}]

如果需要,您可以使用json模块将ti转换回字符串 的 EX:

import json
print json.dumps(A)