Как решить проблему "'int' object is not subscriptable" в Django из API Kraken
Мне интересно, как правильно сохранить число в Django SQLite, полученное из Kraken API, когда есть массив строк или целых чисел (https://docs.kraken.com/rest/#operation/getOHLCData).
my views.py
from rest_framework import generics
from .serializers import KrakenSerializer
from krakenohlc.models import Krak
import requests
class KrakenList(generics.RetrieveAPIView):
serializer_class = KrakenSerializer
queryset = Krak.objects.all()
def get_object(request):
url = 'https://api.kraken.com/0/public/OHLC?pair=XBTEUR'
response = requests.get(url)
data = response.json()
for i in data['result'].values():
kraken_data = Krak(
time_0=(i[0][0]),
)
kraken_data.save()
my models.py
from django.db import models
class Krak(models.Model):
time_0 = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.time_0
Вот ошибка, которую я получаю в браузере:
Ответ SQLite на самом деле сохраняет номер API в базе данных:
Я исследовал и перепробовал множество подобных случаев, но ни в одном из них не было примера ответа API с этим сообщением об ошибке.
Я думаю, что проблема в последнем элементе массива "result" - "last". Кажется, что это просто число. Наверное, нужна проверка типов в алгоритме.
Предложение по модификации кода:
for i in data['result'].values():
# Skips "last" attribute
if isinstance(i, int):
continue
kraken_data = Krak(
time_0=(i[0][0]),
)
kraken_data.save()