我是使用python进行编码的新手,一步一步地学习它。我有一个解析文本文件和更新数据库的任务。该文件将具有一些状态 门票摘要: 频率 : 采取的行动:<像“重启服务器”这样的东西> 状态:
我想解析此文件,获取“ticket summary”,“frequency”等字段的值,并将它们放入数据库中,其中定义了列的列。我正在阅读python正则表达式和子字符串解析,但没有找到如何开始。需要帮助
答案 0 :(得分:0)
由于你没有包含一个例子,我将提供一个在这里使用。我假设你已经安装了mongodb,pymongo并且有一个在本地运行的实例。例如,我选择的文件格式如下:
Frequency: restarted server, Action taken- none, Status: active
代码将使用正则表达式来提取字段。对于演示,请查看此处:regex demo
import pymongo
import re
client = pymongo.MongoClient()
db = client['some-db']
freqgroup = re.compile(r"(?P<Frequency>Frequency[\:\-]\s?).*?(?=,)", flags=re.I)
actgroup = re.compile(r"(?P<ActionTaken>Action\sTaken[\:\-]\s?).*?(?=,)", flags=re.I)
statgroup = re.compile(r"(?P<Status>Status[\:\-]\s?).*", flags=re.I)
with open("some-file.txt", "rb") as f:
for line in f:
k = re.search(freqgroup, line)
db.posts.insert_one({"Frequency": line[k.end("Frequency"):k.end()]})
k = re.search(actgroup, line)
db.posts.insert_one({"ActionTaken": line[k.end("ActionTaken"):k.end()]})
k = re.search(statgroup, line)
db.posts.insert_one({"Status": line[k.end("Status"):k.end()]})