Получение данных из API в django

У меня есть доступ к внешнему API, в котором есть некоторые данные, похожие на следующие:

{
   "Successful":true,
   "Message":"[{\"Id\":1,\"GroupId\":0,\"QuestionTitle\":\"What is your first name?\",\"GroupName\":null,\"QuestionType\":\"TEXT\",\"IsMappingAvailable\":null,\"BodyRegion\":0,\"EnableCalculation\":false,\"Responses\":[]},{\"Id\":2,\"GroupId\":0,\"QuestionTitle\":\"And your last name?\",\"GroupName\":null,\"QuestionType\":\"TEXT\",\"IsMappingAvailable\":null,\"BodyRegion\":0,\"EnableCalculation\":false,\"Responses\":[]}]"
}

Теперь я хочу показать все эти Id и QuestionTitle в моем шаблоне.

мой views.py:

def GetQuestion(request):
    headers = {'Content-Type': 'application/json', 'Authorization': 'Basic XXXXXXXXXX='}
    body = { "Tenant" : "devED" }
    GetQuestion_response = requests.post('https://url_name.com/api/GetQuestions', headers=headers, json=body).json()
    GetQuestion_dict={
        'GetQuestion_response' : GetQuestion_response,
    }
    return render(request, 'app\GetQuestion.html', GetQuestion_dict)

в моем template:

{% for i in GetQuestion_response.Message %}
      <h2>ID: {{ i.Id }}</h2>
      <h2>QuestionTitle: {{ i.QuestionTitle }}</h2>
{% endfor %}

Но, к сожалению, это не дает никаких результатов. Возможно, это потому, что значение ключа Message в API находится внутри двойной кавычки (как строка).

Пожалуйста, подскажите, как я могу это исправить?

В данном случае, поскольку Message возвращается как строка, ее нужно снова разобрать как json следующим образом:

import json

def GetQuestion(request):
    headers = {'Content-Type': 'application/json', 'Authorization': 'Basic XXXXXXXXXX='}
    body = { "Tenant" : "devED" }
    GetQuestion_response = requests.post('https://url_name.com/api/GetQuestions', headers=headers, json=body).json()
    
    # Parse message as json
    GetQuestion_response = json.loads(GetQuestion_response['Message'])
    
    GetQuestion_dict={
        'GetQuestion_response' : GetQuestion_response,
    }
    return render(request, 'app\GetQuestion.html', GetQuestion_dict)

А затем в шаблоне просто используйте GetQuestion_response:

{% for i in GetQuestion_response %}
    <h2>ID: {{ i.Id }}</h2>
    <h2>QuestionTitle: {{ i.QuestionTitle }}</h2>
{% endfor %}
Вернуться на верх