我有一个日志文件,我必须对其进行解析。日志文件可能有 3 种类型的行
cat- xxxxxxxxxxxxx
dog - xxxxxxxxxxxxxxx
rat - xxxxxxxxxxxxx
我在 python 脚本中的解析函数是
from django.utils import simplejson
simplejson.JSONEncoder.item_separator = ','
simplejson.JSONEncoder.key_separator = ':'
def parseFile(self):
thread.start_new_thread(self.part1,("rat",))
thread.start_new_thread(self.part1,("dog",))
thread.start_new_thread(self.part1,("cat",))
def part1(self, tag):
try:
print "eating %s feed statements\n"%tag
log_file = open(self.file,'r')
for line in log_file:
if line.find(tag) != -1:
msg = self.getJsonMessage(line)
print "hello1"
self.META_TAGS[tag](msg)
log_file.close()
print "finished eating %s\n"%tag
print self.positiveCount, self.negcount, self.nocount
except Exception,e:
print e
def getJsonMessage(self,line):
parts = line.split(' ')
jsonstr = ''
count = 4
while(count<len(parts)):
jsonstr += ' ' + parts[count]
#print parts[count]
count = count + 1
print jsonstr
msg = simplejson.loads(jsonstr) //LINE 1
date = parts[0].split('-')
time = parts[1].split(':')
seconds = time[2].split(',')
msg['feed_date'] = datetime(int(date[0]),int(date[1]),int(date[2]),int(time[0]),int(time[1]),int(seconds[0]),int(seconds[1]))
return msg
现在当代码到达 LINE 1 时会抛出异常
'NoneType' 对象没有属性 'loads'
我知道 simplejson 在当前版本的 django 中已被弃用,但我使用的是旧版本。