首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django :为Rest-API创建JSON

Django :为Rest-API创建JSON
EN

Stack Overflow用户
提问于 2015-08-05 02:01:46
回答 2查看 164关注 0票数 0

我想创建下表的json数据。这个表有两个字段Name和ID。

{"Instances": [{"Name": "test2", "ID":"7a3a2eab-7d3b-498b-bc69-ba39396ada4f"},{"Name": "test1", "ID":"1114cb76-f3df-4c60-8b12-5ad14224ffbd"}]}

代码语言:javascript
复制
Name           ID
test2          7a3a2eab-7d3b-498b-bc69-ba39396ada4f
test1          1114cb76-f3df-4c60-8b12-5ad14224ffbd
ce-2           8b97b82b-a9e4-4fe0-adcb-eeaaac170301
ce-1           afaa50ad-8025-415b-81c4-566c8e06f388

我正在从api.nova.server_list(self.request)获取上述数据。我尝试编写以下代码来将数据转换为python+django中的json数据,但没有成功。

代码语言:javascript
复制
   class InstanceList(django.views.generic.View):
    def get(self, request, *args, **kwargs):
          instances=api.nova.server_list(self.request)
          def serializer(m):
              ret= {} 
              ret['Name']= m.name
              ret['Id']=m.id
          context= {
              'instances': [serializer(m) for m in instances],
          }
          return HttpResponse(json.dumps(context), content_type='application/json')
EN

回答 2

Stack Overflow用户

发布于 2015-08-05 02:53:48

假设:

代码语言:javascript
复制
instances = api.nova.server_list(self.request)

返回instances的列表,我看不到在get函数中定义serializer函数的点。

使用这些实例,只需按如下方式创建字典:

代码语言:javascript
复制
data_list = [{"Name" : instance.name, "ID" : instance.id} for instance in instances]

data = {"Instances" : data_list}

然后简单地这样做:

代码语言:javascript
复制
return HttpResponse(json.dumps(data), content_type = 'application/json')
票数 1
EN

Stack Overflow用户

发布于 2015-08-05 03:05:55

我强烈建议您查看这些在Django中创建REST API的参考资料:

Django Rest框架:http://www.django-rest-framework.org/

Tastypie接口:http://tastypieapi.org/

我个人使用Tastypie成功地创建了一个从模型返回JSON数据的REST API。下面是Tastypie文档的入门链接:https://django-tastypie.readthedocs.org/en/latest/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31816179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档