2017-09-12 2 views
1

Ich befolge die Dokumentation über Serialisierer in dieser link, ich bin nicht sicher, ob es an Dokumentation über Dezimal-Serialisierer fehlt? I definiert ein Element mit einem scrapy Feld wie folgt aus:Serialize Dezimalzahlen in Scrapinghub

prize = scrapy.Field(serializer=Decimal, output_processor=TakeFirst())

Ich erhalte mehrere Fehler, wenn speichert diesen Wert scrapinhub, vor allem mit Zahlen Kommata enthalten.

Gibt es eine Standardmethode zum Serialisieren von Dezimalzahlen?

Antwort

2

Dies ist kein scrapinghub oder scrapy Fehler, Sie ein Zeichenketten mit Komma in eine Zahl nicht konvertieren können, müssen Sie zuerst, dass Komma entfernen müssen und dann konvertieren:

def decimal_serializer(value): 
    return float(value.replace(',', '')) 

... 

    prize = scrapy.Field(serializer=decimal_serializer, output_processor=TakeFirst())