0

解析する必要があるログ ファイルがあります。ログ ファイルには 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」がありません

現在のバージョンのdjangoではsimplejsonが非推奨になっていることは知っていますが、古いバージョンを使用しています。

4

0 に答える 0