解析列表中的元素并将结果存储在字典中

时间:2013-09-27 17:32:55

标签: python parsing return

我需要从一个单独的文件(我做过)中导入一个类,让它解析一个列表中的元素,并将该解析后的文件存储为字典。

我需要你的帮助。我以为会有回报,但没有,所以我不知道我应该做什么。我认为这是可能的,我只是不知道如何。

到目前为止我的代码是:

class GCCCOMPARE():
    def __init__(self, list):
        self.GCCLIST = list 
        self.compare()
        self.GCCN = []
        self.GCCPLUS = []


    def compare(self):
        n=0
        while n<size(self.GCCLIST):
            self.GCCN=self.GCCLIST[n]
            self.GCCPLUS=self.GCCLIST[n+1]
            GCCFORMAT.__init__(GCCN)

我给出的另一个文件中的代码是:

class GCCFORMAT():
    def __init__(self, file):
        #print"New GCC Load"
        self.pList = [];
        self.dList = [];
        self.file = file;
        self.parse()

    def parse(self):
        with open(self.file, "r") as icdhelper:
            for line in icdhelper:
                sArr = line.split()
                self.pList.append(PARAM(sArr[0], sArr[4], sArr[2], sArr[3], sArr[6], sArr[7]))

我怀疑这对任何有经验的人来说都很难,但即使如此,也要感谢很多人!

2 个答案:

答案 0 :(得分:1)

当您创建GCCFORMAT类的实例时,它将为您执行解析并将结果存储在实例属性pList中。只需访问该属性:

gcc_format = GCCFORMAT(GCCN)
results = gcc_format.pList

答案 1 :(得分:0)

这是一个可能的解决方法:

GCCCOMPARE.py

import GCCFORMAT
class GCCCOMPARE():
  def __init__(self, list):
    self.GCCLIST = list
    self.GCCDICT = {}
    self.compare()

  def compare(self):
    for i,element in enumerate(self.GCCLIST):
      data = GCCFORMAT.GCCFORMAT(element)
      self.GCCDICT.update({i:data.pList})

GCCFORMAT.py

class GCCFORMAT():
  def __init__(self, file):
    #print"New GCC Load"
    self.pList = [];
    self.dList = [];
    self.file = file;
    self.parse()

  def parse(self):
    with open(self.file, "r") as icdhelper:
      for line in icdhelper:
        sArr = line.split()
        self.pList.append([sArr[0], sArr[4], sArr[2], sArr[3], sArr[6], sArr[7]])

temp0.txt

0 1 2 3 4 5 6 7 8 9

temp1.txt

0 1 2 3 4 5 6 7 8 9

然后您可以按如下方式使用上述类:

import GCCCOMPARE
somevariable = GCCCOMPARE.GCCCOMPARE(["temp0.txt","temp1.txt"])
desired_dictonary = somevariable.GCCDICT

输出

desired_dictionary = {0: [['0', '4', '2', '3', '6', '7']], 1: [['0', '4', '2', '3', '6', '7']]}