SORU
7 EKİM 2009, ÇARŞAMBA


Google JSON serileştirme Motoru modelleri Uygulaması

Hiçbir başarı ile uzunca bir süre için arama oldum. Benim proje Django kullanarak değil, orada App Engine modelleri seri hale getirmek için basit bir yol (google.appengine.ext.db.Model) JSON veya kendi seri hale getirici yazmak gerekiyor mu? Model sınıfım oldukça basittir. Örneğin:

class Photo(db.Model):
    filename = db.StringProperty()
    title = db.StringProperty()
    description = db.StringProperty(multiline=True)
    date_taken = db.DateTimeProperty()
    date_uploaded = db.DateTimeProperty(auto_now_add=True)
    album = db.ReferenceProperty(Album, collection_name='photo')

Şimdiden teşekkürler.

CEVAP
7 EKİM 2009, ÇARŞAMBA


Basit bir özyinelemeli fonksiyonu simplejson geçirilen iç içe bir sözlük için bir varlık (ve herhangi bir referents) dönüştürmek için kullanılabilir:

import datetime
import time

SIMPLE_TYPES = (int, long, float, bool, dict, basestring, list)

def to_dict(model):
    output = {}

    for key, prop in model.properties().iteritems():
        value = getattr(model, key)

        if value is None or isinstance(value, SIMPLE_TYPES):
            output[key] = value
        elif isinstance(value, datetime.date):
            # Convert date/datetime to MILLISECONDS-since-epoch (JS "new Date()").
            ms = time.mktime(value.utctimetuple()) * 1000
            ms  = getattr(value, 'microseconds', 0) / 1000
            output[key] = int(ms)
        elif isinstance(value, db.GeoPt):
            output[key] = {'lat': value.lat, 'lon': value.lon}
        elif isinstance(value, db.Model):
            output[key] = to_dict(value)
        else:
            raise ValueError('cannot encode '   repr(prop))

    return output

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • PUSHER

    PUSHER

    11 HAZİRAN 2014
  • SellerDp

    SellerDp

    27 EKİM 2009