Python:数据传输对象

时间:2012-06-06 19:04:47

标签: python ironpython html-agility-pack

问题

我需要从客户网页解析/访问各种html表,其中的数据可能因表格而异(列长)。

所以,我所做的是为每个表创建一个类但是这个任务变得荒谬,因为我需要解析许多表,并且数据会有所不同。

问题

除了为每个要传输的数据创建一个类之外,有没有办法在python中实现DTO?

实施例

class HoldItem():

    @property
    def none1(self):
        return self

    @property
    def none2(self):
        return self

    @property
    def item(self):
        return self

    @property
    def plant(self):
        return self

    @property
    def location(self):
        return self

    @property
    def material(self):
        return self

    @none1.setter
    def none1(self, value):
        self.none1 = value

填充实例

items = []
for tds in trs:
    item = HoldItem()

    if (x == PROP_A):
        item.prop_a = tds.InnerText

    ...
    ...
    ...

    items.append(item)

return items

转移到SQLServer数据库

    for item in items:
        command.AddWithValue("@prop_a", item.prop_a)

事实

  • 我正在使用Iron Python
  • 我正在将信息传输到表(SQL Server)
  • 我正在使用HtmlAgilityPack来解析html表
  • 我正在抓取网页抓取

2 个答案:

答案 0 :(得分:4)

The Messenger object似乎对你的目的有意义。它被设计为一种传递数据的方式。

答案 1 :(得分:2)

Python是动态的。

覆盖__get____set__并将“字段值”存储在您的类(实例)内部的字典中。