[英]In Django why the error "TypeError at / string indices must be integers"?
我正在尝试学习如何在 Django 中保存来自 kraken api 的 json 内容的一部分。 通过stackoverflow上的几个例子,我想出了这个代码:
视图.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']
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} )
在 iPad 上,因此无法检查,但我怀疑您的 'i' 是一个字符串,需要先转换为 Python 对象/字典,然后才能从中提取子元素。
查看json
模块中的json.loads
方法。
你的“i”是一个字符串的形式。 您需要先将其转换为对象。 使用i = json.loads(i)
循环字典会循环它的键,而不是它的值。 你要:
for i in data.values():
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.