我正在使用Flask-Restful来创建用于存储geojson数据的API。 Geojson允许存储“属性”,并且对这些参数的含义没有限制(可以存储颜色,昵称等)。我想使用flask-restful传输和存储这些数据,但我不确定我可以用“开放式”数据做到这一点。当我使用'marshal'作为我的数据时,我需要准确指定我期望的字段。
from flask import Flask, abort
from flask.ext.restful import Api, Resource, fields, marshal, reqparse
class GeoAPI(Resource):
def get(self, id):
geo= session.query(data.Geo).filter_by(id= id).first()
if (geo):
return {'geo': marshal(geo, geo_fields)}
else:
abort(404)
geo_fields = {
"name": fields.String,
"coordinates": fields.List(fields.List(fields.List(fields.Float))),
"parameters": fields.String, # String may be the wrong type, tried nested?
'version': fields.String,
'uri': fields.Url('geo')
}
api.add_resource(GeoAPI, '/pathopt/api/0.1/geos/<int:id>', endpoint = 'geo')
Geo的数据来自SQLAlchemy查询。
是否可以声明'properties'是一个可以包含许多不同字段的对象,或者这是否需要我明确说明我的字段名称?