Python: objeto de transferencia de datos

html-agility-pack ironpython python

Pregunta

Problema

Tengo varias tablas html que necesito analizar / acceder desde la página web de mis clientes, los datos pueden variar entre las tablas (longitud de las columnas).

Entonces, lo que hice fue crear una clase para cada tabla, pero esta tarea se volvió ridícula, ya que hay muchas tablas que necesito analizar con datos que varían.

Pregunta

¿Hay alguna forma de implementar DTO en Python que no sea crear una clase para cada dato que transfiera?

Ejemplo

Clase

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

Poblar instancias

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

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

    ...
    ...
    ...

    items.append(item)

return items

Transferencia a la base de datos SQLServer

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

Hechos

  • Estoy usando Iron Python
  • Estoy transfiriendo la información a una tabla (SQL Server)
  • Estoy usando HtmlAgilityPack para analizar la tabla html
  • Estoy rastreando la página web

Respuesta aceptada

Esto parece tener sentido para su propósito


Respuesta popular

Python es dinámico.

Sobrescriba __get__ y __set__ y almacene los 'valores de campo' en un diccionario interno de su clase (instancia).



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué