【发布时间】:2015-09-13 06:05:33
【问题描述】:
我使用 djangorestframework 生成 API,我的 Serializer 为:
from rest_framework import serializers
class MarketSerializer(serializers.Serializer):
total_market_cap = serializers.FloatField(read_only=True)
volume = serializers.FloatField(required=False)
turnover_rate = serializers.FloatField(required=False)
pe = serializers.FloatField(required=False)
class MarketOverallSerializer(serializers.Serializer):
# markets = MarketSerializer(many=True) # A nested list of 'edit' items.
sh = MarketSerializer()
sz = MarketSerializer()
cyb = MarketSerializer()
zxb = MarketSerializer()
我的 API 查看为:
import json
from django.shortcuts import render
# Create your views here.
from rest_framework.renderers import JSONRenderer
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from serializers import MarketSerializer, MarketOverallSerializer
from market.models import Market
from market.parse import *
class MarketView(APIView):
def get(self, request, *args, **kw):
# Process any get params that you may need
# If you don't need to process get params,
# you can skip this part
market = market_overall()
serializer = MarketOverallSerializer(market)
content = JSONRenderer().render(serializer.data)
print '**********content:{}'.format(content)
response = Response(content, status=status.HTTP_200_OK)
return response
我得到 JSON 响应:
"{\"sh\":{\"total_market_cap\":262143.47,\"volume\":25240015.73,\"turnover_rate\":0.84,\"pe\":15.8},\"sz\":{\"total_market_cap\":0.0,\"volume\":0.0,\"turnover_rate\":0.0,\"pe\":0.0},\"cyb\":null,\"zxb\":null}"
为什么生成的响应不是有效的 JSON 输出,有这么多“\”字符?
【问题讨论】:
-
response = Response(json.loads(content), status=status.HTTP_200_OK),但为什么会这样?
标签: python django django-rest-framework