我正在编写一个以CSV / Excel格式抓取文件的解析器,我必须在将其推入数据库之前对其进行操作。
这是我到目前为止所做的:
from pwpcore.file_loader import FileReader
from pwpcore.logging import Logger
import petl as etl
class CambridgeParser(object):
"""Parses an incoming Cambridge Benchmark CSV file and transforms/adds a few fields so that it can be consumed by RAP.
"""
def __init__(self, job):
self.job = job
def load_file(self, file):
Logger.info("Parsing {0}".format(file))
file_reader = FileReader(self.job, 'Cambridge Data')
with file_reader.open(file) as file_processor:
cambridge_data = file_reader.read(file_processor)
Logger(cambridge_data)
# Add Last Price to table
def add_last_price(self, table):
updated_cambridge = etl.addfield(table, 'Last Price')
return updated_cambridge
请注意,pwpcore
包基本上是一堆辅助方法,可以加载文件并读取它。
我在测试文件中有这个:
import unittest
from pwpcore.job.job import Job, parser
import petl as etl
from cambridge_parser.cambridge_parser import CambrdigeParser
class CambridgeParserTest(unittest.TestCase):
args = CambridgeParser.parse_args([''])
def setup(self):
self.args = parser.parse_args(['--wikiPage', ''])
self.job = Job('Unit Test', self.args)
self.cambridge_parser = CambridgeParser(self.job)
def test_populates_a_price_column(self):
data = etl.fromdicts([{"Price": "$$$"}])
# TODO
我正在试图找出谁来编写测试以检查文件是否已加载并填充了一些数据,但我不完全确定如何继续这样做。