Python: Datenübertragungsobjekt

html-agility-pack ironpython python

Frage

Problem

Ich habe verschiedene HTML-Tabellen, die ich von meiner Kunden-Webseite aus analysieren oder auf sie zugreifen muss. Die Daten darüber können in den Tabellen variieren (Länge der Spalten).

Also, was ich getan habe, war eine Klasse für jede Tabelle zu erstellen, aber diese Aufgabe wurde lächerlich, da es eine Menge von Tabellen gibt, die ich mit variierenden Daten parsen muss.

Frage

Gibt es eine Möglichkeit, DTOs in Python zu implementieren, außer eine Klasse für jede Daten zu erstellen, die ich übertragen soll?

Beispiel

Klasse

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

Instanzen füllen

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

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

    ...
    ...
    ...

    items.append(item)

return items

In die SQL Server-Datenbank übertragen

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

Fakten

  • Ich benutze Iron Python
  • Ich übertrage die Informationen in eine Tabelle (SQL Server)
  • Ich verwende HtmlAgilityPack, um die HTML-Tabelle zu analysieren
  • Ich crawle die Seite im Web

Akzeptierte Antwort

Dies scheint für Ihren Zweck sinnvoll zu sein


Beliebte Antwort

Python ist dynamisch.

__get__ __set__ __get__ und __set__ und speichern Sie "Feldwerte" in einem internen Wörterbuch Ihrer Klasse (Instanz).



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum