我正在尝试学习如何在Django中保存来自kraken api的json内容的一部分。通过这里关于stackoverflow的几个示例,我得出了以下代码:
views.py
from django.shortcuts import render
from meal_app.models import Kraken
import requests
def get_krakens(request):
all_krakens = {}
url ='https://api.kraken.com/0/public/Assets'
response = requests.get(url)
data = response.json()
for i in data:
kraken_data = Kraken(
name = i['altname']
)
kraken_data.save()
all_krakens = Kraken.objects.all().order_by('-id')
return render (request, 'krakens/kraken.html', { "all_krakens":
all_krakens} )
当我尝试运行时,它出现:
如何解决此错误?我的json在我的控制台中是可见的,但是我不能访问'altname‘的值。如果您能帮忙,我们将不胜感激。
/Users/davidmoreira/Documents/crypto/djangokrakenapi/meal_project/meal_app/views.py, line 14, in get_krakens
name = i['altname']
发布于 2021-11-07 12:23:46
在字典上循环遍历它的键,而不是它的值。当你想在data['results']
上循环时,你在data
上循环。您需要:
for i in data['result'].values():
发布于 2021-11-07 11:39:37
您的"i“是字符串形式的。你需要先把它转换成一个对象。使用i = json.loads(i)
发布于 2021-11-07 13:13:10
from django.shortcuts import render
from meal_app.models import Kraken
import requests
def get_krakens(request):
all_krakens = {}
url ='https://api.kraken.com/0/public/Assets'
response = requests.get(url)
data = response.json()
for i in data:
kraken_data = Kraken(
name = data['result'][i]['altname']
)
kraken_data.save()
all_krakens = Kraken.objects.all().order_by('-id')
return render (request, 'krakens/kraken.html', { "all_krakens":
all_krakens} )
https://stackoverflow.com/questions/69871860
复制相似问题