Как из вложенного JSON в JSON получить эту дату и сделать сериализацию для API в Django RestFramework

Здравствуйте, я новичок в DRF и мне нужна помощь. Я пишу API.Затем пользователь, например, вводит url http://api.result/82467/pulse, затем он получает информацию для результата с номером 82467 и измерение пульса (нужно получить только эти данные):

                  {
                    "code": "1120",
                    "norm": null,
                    "value": "1",
                 },
                {
                    "code": "1121",
                    "norm": null,
                    "value": "2",
                 }

и если http://api.result/82467/termom, то он получит информацию для результата с номером 82467 и измерение терма (необходимо получить только эти данные):

                {
                    "code": "1118",
                    "norm": "35.9 - 37.0",
                    "value": "36.5",
                 }

Я получаю эти данные из базы данных и предоставляю информацию для пользователя, поэтому я должен сериализовать эти данные. поле "type" - динамическое, поле "exams" - JSONField() в модели Result, а "code", "value" и "norm" - объекты BaseData. Моя проблема в том, что я должен получить поля из "review"("code", "value" и "norm") в views.py для сериализации, потому что это json и я не знаю, как я должен с ним работать, как получить эти данные и как сделать сериализацию. Может быть json.dump(), но тогда я получу str и не смогу преобразовать в dict. Может кто-нибудь даст мне совет, пожалуйста.

{
    "id": 56,
    "number": "82467",
    "date": "2021-08-19",
    "exams": [
        {
            "type": "termom",
            "stamp": "2021-08-19R17:00:17",
            "review": [
                {
                    "code": "1118",
                    "norm": "35.9 - 37.0",
                    "value": "36.5",
                 }
            ],
         },
        {
            "type": "pulse",
            "stamp": "2021-08-19R12:00:47",
            "review": [
                {
                    "code": "1120",
                    "norm": null,
                    "value": "1"
                 },
                {
                    "code": "1121",
                     norm": null,
                    "value": "2",
                 },
                ]
           }
        ]
    }

my url.py

router = SimpleRouter()

urlpatterns = [
            path(
                    'result/<int:number>/',
                    ResultViewSet.as_view({'get': 'retrieve'}),
                 ),
]
urlpatterns += router.urls

views.py

class ResultViewSet(viewsets.ReadOnlyModelViewSet):      
        queryset = Result.objects.all()                  
        serializer_class = ResultSerializer              
        lookup_field = 'number'                          
        lookup_url_kwarg = 'number'                      
        permission_classes = [IsAuthenticated]  

serializer.py

class ReviewSerializer(serializers.Serializer):
    code = serializers.CharField()
    value = serializers.CharField(required=False)
    norm = serializers.CharField(allow_null=True, allow_blank=True)

class ResultSerializer(serializers.ModelSerializer):
    code = ReviewSerializer()
    value = ReviewSerializer()
    norm = ReviewSerializer()
     class Meta:

        model = Result
        fields = (

             'code',
             'value',
             'norm'

         )

Вернуться на верх