如何序列化ndb.GeoPt以进行JSON响应以满足我在Python / Google App Engine中的需求

纸袋作家

这将是一个两部分的问题,

在这里,我正在向我的ndb服务发送一个GeoPt。JSON如下所示。

{
    "DriverId": 1,
    "Startpoint": {
        "longitude": 46.764084,
        "latitude": -71.351396
    },
    "Endpoint": {
        "longitude": 46.764084,
        "latitude": -71.351396
    },
    "Regular": false,
    "DateAndTime": "28/03/2015",
    "PlacesAvailable": 3,
    "ValLift": 3
}

我使用此函数序列化我的DateTimes

def serialiser__json(objet):

    if isinstance(objet, datetime.datetime):
        return objet.replace(microsecond=0).isoformat()
    elif isinstance(objet, datetime.date):
        return objet.isoformat()
    else:
        return objet

现在,我想知道如何将GeoPt序列化为JSON,并使其返回与发送时的外观相同,例如,这是我的Route模型。

class Route(ndb.Model):

  driver_id = ndb.IntegerProperty()
  requester_id = ndb.IntegerProperty()
  startpoint = ndb.GeoPtProperty(required=True)
  endpoint = ndb.GeoPtProperty(required=True)
  regular = ndb.BooleanProperty(required=True)
  date_and_time = ndb.DateTimeProperty(required=True)
  places_available = ndb.IntegerProperty()
  val_lift = ndb.IntegerProperty()

这是我在POST定义中添加长纬度的方法

newroute.startpoint = ndb.GeoPt(route_json['Startpoint']['longitude'],route_json['Startpoint']['latitude'])

newroute.endpoint = ndb.GeoPt(route_json['Endpoint']['longitude'],route_json['Endpoint']['latitude'])

所以第一部分

如何序列化存储在模型中的GeoPt?

第二部分,

如何使其具有与发送时相同的外观(在其中返回带有经度和纬度“成员”的StartPoint)?

提前致谢。

亚历克斯·马特利

您刚刚张贴作为自答案的身体变化的独有的命名serialiser__json(怪异的标识符中使用两个相邻的下划线,但法律)给你正确的JSON功能,但并不能满足你很严格的要求,为“第二部分” :

如何使其外观与发送方式相同

这样做有几个问题:(A),键的顺序(当使用a时dict它是任意的,尽管具有相等的语义,但可能导致结果JSON字符串的“外观”完全不同);(B),空格(您输入的JSON字符串显然具有各种美化的空格,包括用于缩进的换行和空格);以及(C)可能是次要问题,格式为floats的有效位数

(A)可以通过collections.OrderedDict按您希望键的顺序建立a来固定-json.dumps该有序字典的a将尊重键的顺序。(B)和(C)更微妙,需要更多的“美化”工作-您的产品中是否真的需要这种化妆品...?

(顺便说一下,所有这些问题几乎都与App Engine无关)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python的Google App Engine中删除NDB模型的所有实体?

来自分类Dev

如何在python的Google App Engine中删除NDB模型的所有实体?

来自分类Dev

Google App Engine NDB中的层次结构

来自分类Dev

Google App Engine关于NDB中的密钥

来自分类Dev

App Engine数据存储区to_dict替代将ndb.Model序列化为JSON

来自分类Dev

如何从Google App Engine NDB更新查询?

来自分类Dev

在Google App Engine中,如何使用python通过boolean查询?

来自分类Dev

如何回滚Google App Engine的Python SDK中的appcfg?

来自分类Dev

如何回滚Google App Engine的Python SDK中的appcfg?

来自分类Dev

Google App Engine NDB查询

来自分类Dev

如何在Windows 8 Store App中序列化和反序列化observableCollection?

来自分类Dev

Google App Engine:当查询执行由ndb.transaction装饰的函数时,如何进行交互

来自分类Dev

Google App Engine + Python中的REST API?

来自分类Dev

如何从我们要在Google App Engine中使用python在ndb数据存储中搜索的元素列表中查询AND&OR操作

来自分类Dev

如何在Google App Engine中使用python从我们要在ndb数据存储中搜索的元素列表中查询AND&OR操作

来自分类Dev

Google App Engine ndb.delete_multi()的效率如何?

来自分类Dev

我如何反序列化和序列化牛顿json中的复杂json数据?

来自分类Dev

google app engine - ndb query to only get a few columns in python

来自分类Dev

Play框架:如何在JSON中对枚举进行序列化/反序列化

来自分类Dev

您如何通过NDB在Google App Engine中获取N个最新模型?

来自分类Dev

如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

来自分类Dev

如何在Haskell中对通过网络发送的对象进行序列化/反序列化?

来自分类Dev

在Google App Engine中通过Python查询Google Bigquery

来自分类Dev

如果调用者是Google App Engine,如何仅在Django中运行Google App Engine cronjobs?

来自分类Dev

从Google App Engine NDB获取图像

来自分类Dev

Google App Engine-NDB-索引问题

来自分类Dev

Google App Engine NDB检索浮动属性

来自分类Dev

如何序列化和反序列化JSON文件到DataTable中以填充DataGridView?

来自分类Dev

如何在Google App Engine HTTP响应中包括图形和表格

Related 相关文章

  1. 1

    如何在python的Google App Engine中删除NDB模型的所有实体?

  2. 2

    如何在python的Google App Engine中删除NDB模型的所有实体?

  3. 3

    Google App Engine NDB中的层次结构

  4. 4

    Google App Engine关于NDB中的密钥

  5. 5

    App Engine数据存储区to_dict替代将ndb.Model序列化为JSON

  6. 6

    如何从Google App Engine NDB更新查询?

  7. 7

    在Google App Engine中,如何使用python通过boolean查询?

  8. 8

    如何回滚Google App Engine的Python SDK中的appcfg?

  9. 9

    如何回滚Google App Engine的Python SDK中的appcfg?

  10. 10

    Google App Engine NDB查询

  11. 11

    如何在Windows 8 Store App中序列化和反序列化observableCollection?

  12. 12

    Google App Engine:当查询执行由ndb.transaction装饰的函数时,如何进行交互

  13. 13

    Google App Engine + Python中的REST API?

  14. 14

    如何从我们要在Google App Engine中使用python在ndb数据存储中搜索的元素列表中查询AND&OR操作

  15. 15

    如何在Google App Engine中使用python从我们要在ndb数据存储中搜索的元素列表中查询AND&OR操作

  16. 16

    Google App Engine ndb.delete_multi()的效率如何?

  17. 17

    我如何反序列化和序列化牛顿json中的复杂json数据?

  18. 18

    google app engine - ndb query to only get a few columns in python

  19. 19

    Play框架:如何在JSON中对枚举进行序列化/反序列化

  20. 20

    您如何通过NDB在Google App Engine中获取N个最新模型?

  21. 21

    如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

  22. 22

    如何在Haskell中对通过网络发送的对象进行序列化/反序列化?

  23. 23

    在Google App Engine中通过Python查询Google Bigquery

  24. 24

    如果调用者是Google App Engine,如何仅在Django中运行Google App Engine cronjobs?

  25. 25

    从Google App Engine NDB获取图像

  26. 26

    Google App Engine-NDB-索引问题

  27. 27

    Google App Engine NDB检索浮动属性

  28. 28

    如何序列化和反序列化JSON文件到DataTable中以填充DataGridView?

  29. 29

    如何在Google App Engine HTTP响应中包括图形和表格

热门标签

归档