python Python的なアプリからJSONを出力する方法はいろいろあると思いますが,SQLAlchemy的利用が前提だとJSONシリアライズの前にオブジェクトの変换を自前で作るケースが多いようで

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Python的なアプリからJSONを出力する方法はいろいろあると思いますが,SQLAlchemy的利用が前提だとJSONシリアライズの前にオブジェクトの変换を自前で作るケースが多いようで相关的知识,希望对你有一定的参考价值。

詳細は[こちらで(https://marshmallow.readthedocs.org/en/latest/)](https://marshmallow.readthedocs.org/en/latest/)
##前提としてSQLAlchemyで以下のようなモデルがあるとします。
class Dog(Base):
  Birth = Column(Date)
  Name = Column(Text)
  Breed = Column(Text)
  def __init__(self, Birth, Name, Breed):
    self.Birth = Birth
    self.Name = Name
    self.Breed = Breed
    
##API
from marshmallow import Serialize, fields

@app.route('/mydog')
def mydog():
  breed = request.args.get("breed")
  params = []
  params.append(Dog.Breed.like('%' + breed + '%'))
  parm = and_(*params)
  dg = session.query(Dog).filter(parm).all()
  serialized = dgserializer(dg, many=True).data
  return json.dumps(serialized, default=date_handler)
  
##serializer
class dgserializer(Serializer):
  class Meta:
    fields = ("Birth", "Name", "Breed")
    
##Python2.7のJSONはDateオブジェクトを扱えないため、isoformatに変換してからシリアライズする
def date_handler(obj):
  return obj.isoformat() if hasattr(obj, 'isoformat') else obj
  
  
  

以上是关于python Python的なアプリからJSONを出力する方法はいろいろあると思いますが,SQLAlchemy的利用が前提だとJSONシリアライズの前にオブジェクトの変换を自前で作るケースが多いようで的主要内容,如果未能解决你的问题,请参考以下文章

csharp アプリケーションのパスを取得(Application.StartupPath)

sh Macのアプリケーションフォルダなどを日本语环境で英语名にするスクリプト

ruby 起动时にShellスクリプト形式の用户数据を渡して,デモアプリが动いている状态でCoreOSを稼働させる

sh unarコマンドですべてのファイルを解压缩するスクリプト。あと展开后のディレクトリから空白文字を置换する。

接触アプリ名は「COCOA」 濃厚接触疑いある場合通知 午後運用

python はてなブログAtomPub APIを使った简易投稿クライアントアプリ(http://ottati.hatenablog.com/entry/2013/09/06/190925の解说用)