使用模式的python json响应

时间:2013-12-03 22:21:22

标签: python json schema

我有一个应用程序和一个使用json进行通信的服务器。我现在正试图尽可能“pythonize”我的服务器代码(我是一个很长时间的C编码器,我担心我的python代码流看起来比pythonic更像C)。 我有一堆消息来回传递。到目前为止,消息格式是“隐式的”,我并没有真正定义一个模式来使其显式/可读/可验证等。

通过搜索主题,我现在可以很好地处理如何定义传入消息模式,验证它等。使用漏勺,我甚至可以直接将其带入类中。 但是,在出站端(即来自服务器的响应),我希望有一个类似的良好定义的结构和接口。

我的问题是: 如何构建响应数据时如何使用定义的出站模式? 'C'类比将是使用结构。 从本质上讲,我不希望我的代码中有任何地方做一些丑陋的事情,如

r = dict(response_field=response_data)
HttpResponse(json.dumps(r))

因为他们我正在隐含地创建我的格式......

我宁愿使用架构作为构建响应的基础

任何想法,建议,最佳做法指针? 感谢

1 个答案:

答案 0 :(得分:2)

您可以使用常规Python类定义出站数据合同。

或者您可以考虑json-schema来定义公共API接口(传入和传出数据协定)。你有json-schema validator in python可以替代漏勺。

如果您有关系数据库的结构化数据,那么您可以考虑使用XSD和XML。 More on this on stackoverflow

如果结构和约束很简单,那么AvroProtocol Buffers就足够了。