반응형
나는 성공하지 못한 채 꽤 오랫동안 찾고 있었다. 내 프로젝트에서 Django를 사용하지 않습니다. App Engine 모델 (google.appengine.ext.db.Model)을 JSON으로 직렬화하는 간단한 방법이 있습니까? 아니면 자체 직렬 변환기를 작성해야합니까?
모델 :
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')
해결 방법
간단한 재귀 함수를 사용하여 엔터티 (및 모든 참조)를 simplejson
에 전달할 수있는 중첩 사전으로 변환 할 수 있습니다.
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
참조 페이지 https://stackoverflow.com/questions/1531501
반응형
'파이썬' 카테고리의 다른 글
파이썬 Django : DB에서 개체 가져 오기 또는 일치하는 항목이 없으면 'None' (0) | 2021.01.24 |
---|---|
파이썬 How to print a list more nicely? (0) | 2021.01.24 |
파이썬 Python 및 Numpy를 사용하여 공분산 계산 (0) | 2021.01.24 |
파이썬 Python으로 Android 앱을 프로그래밍하려면 어떻게해야합니까? (0) | 2021.01.24 |
파이썬 NumPy / OpenCV 2 : 직사각형이 아닌 영역을 자르려면 어떻게합니까? (0) | 2021.01.24 |
댓글