首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Django中,为什么会出现错误"TypeError at / string索引必须是整数“?

在Django中,为什么会出现错误"TypeError at / string索引必须是整数“?
EN

Stack Overflow用户
提问于 2021-11-07 11:03:41
回答 3查看 73关注 0票数 0

我正在尝试学习如何在Django中保存来自kraken api的json内容的一部分。通过这里关于stackoverflow的几个示例,我得出了以下代码:

views.py

代码语言:javascript
运行
复制
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‘的值。如果您能帮忙,我们将不胜感激。

代码语言:javascript
运行
复制
/Users/davidmoreira/Documents/crypto/djangokrakenapi/meal_project/meal_app/views.py, line 14, in get_krakens
            name = i['altname']
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-07 12:23:46

在字典上循环遍历它的键,而不是它的值。当你想在data['results']上循环时,你在data上循环。您需要:

代码语言:javascript
运行
复制
for i in data['result'].values():
票数 1
EN

Stack Overflow用户

发布于 2021-11-07 11:39:37

您的"i“是字符串形式的。你需要先把它转换成一个对象。使用i = json.loads(i)

票数 1
EN

Stack Overflow用户

发布于 2021-11-07 13:13:10

代码语言:javascript
运行
复制
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} )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69871860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档