4

問題

顧客のWebページから解析/アクセスする必要のあるさまざまな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)

事実

  • IronPythonを使用しています
  • 情報をテーブルに転送しています(SQL Server)
  • HTMLテーブルを解析するためにHtmlAgilityPackを使用しています
  • ページをウェブクロールしています
4

2 に答える 2

4

Messengerオブジェクトはあなたの目的にとって意味があるようです。これは、データを渡す方法として設計されています。

于 2012-06-06T19:18:01.840 に答える
2

Pythonは動的です。

'フィールド値'をオーバーライド__get__して、クラス(インスタンス)の内部のディクショナリに格納します。__set__

于 2012-06-06T19:18:36.723 に答える