4

问题

我有各种需要从客户网页解析/访问的 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 表
  • 我正在网页抓取页面
4

2 回答 2

4

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

于 2012-06-06T19:18:01.840 回答
2

Python 是动态的。

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

于 2012-06-06T19:18:36.723 回答