2015-06-14 36 views
4

我编写了一个小型Python Django程序,它可以解析来自JSON API调用的数据,并使用ParsePy将其保存到Parse中。将数据保存到两个单独的分析应用程序中

我有一个python文件,收集数据并将其保存到Parse应用程序数据库中。 Python文件还将一些数据传递到不同的文件中,该文件应该将传递的数据保存到不同的Parse应用程序中。

伪代码:

File1.py

register('key1', 'restKey1') 
file2.class1(passedData) 
file1.saveData 

File2.py

register('key2','restKey2') 
file2.saveData 

当我单独运行的文件,代码完美的作品。但是,当我通过第一个文件执行程序时,数据将全部保存到第一个Parse应用程序数据库中,而不是第二个。

+1

你能告诉你的'register'功能源和目标类和你的'File1.py',你为什么保存在'file1'上? “第二个”是什么意思。这是否意味着你有两个Parse数据库? –

+1

你能否提供你的代码的更多细节? – wherby

回答

1

我想你可以使用模式是这样的:

#!/usr/bin/python 

class SourceInterface(object): 

    def get_data(self): 
     raise NotImplementedError("Subclasses should implement this!") 


class DestinationInterface(object): 

    def put_data(self, data): 
     raise NotImplementedError("Subclasses should implement this!") 


class FileSource(SourceInterface): 

    def __init__(self, filename): 
     self.filename = filename 

    def get_data(self): 
     lines = None 
     with open(self.filename, 'r') as f: 
      lines = f.readlines() 
     if lines: 
      with open(self.filename, 'w') as f: 
       if lines[1:]: 
        f.writelines(lines[1:]) 
      return lines[0] 


class FileDestination(DestinationInterface): 

    def __init__(self, filename): 
     self.filename = filename 

    def put_data(self, data): 
     print 'put data', data 
     with open(self.filename, 'a+') as f: 
      f.write(data) 


class DataProcessor(object): 
    sources_list = [] 
    destinitions_list = [] 

    def register_source(self, source): 
     self.sources_list.append(source) 

    def register_destinition(self, destinition): 
     self.destinitions_list.append(destinition) 

    def process(self): 
     for source in self.sources_list: 
      data = source.get_data() 
      if data: 
       for destinition in self.destinitions_list: 
        destinition.put_data(data) 

if __name__ == '__main__': 
    processor = DataProcessor() 
    processor.register_source(FileSource('/tmp/source1.txt')) 
    processor.register_source(FileSource('/tmp/source2.txt')) 
    processor.register_destinition(FileDestination('/tmp/destinition1.txt')) 
    processor.register_destinition(FileDestination('/tmp/destinition2.txt')) 
    processor.process() 

只要定义你自己

相关问题