私はdjangoアプリケーションでリクエストしてapi呼び出しを行っています。私は名前に重大な誤りがあり続けます。 jsonレスポンスはかなり大きいので、使用する特定のフィールドを選択するだけです。しかし、エラーはjsonリストの最初の項目にあります。リクエストでJSONを解析する(Djangoで)
JSONの最初の数行は、次のようになり、
"cards": [
{
"name": "Air Elemental",
"manaCost": "{3}{U}{U}",
"cmc": 5,
"colors": [
"Blue"
],
"type": "Creature — Elemental",
"types": [
"Creature"
],
"subtypes": [
"Elemental"
],
そして、私の見解で、私はこのようなJSONをパースしています、
def graphs(request):
if request.user.is_authenticated():
parsedData = []
req = requests.get('https://api.magicthegathering.io/v1/cards')
jsonList = []
jsonList.append(json.loads(req.content.decode()))
cardData = {}
for cards in jsonList:
cardData['name'] = cards['name']
cardData['manaCost'] = cards['manaCost']
cardData['colors'] = cards['colors']
cardData['type'] = cards['type']
cardData['rarity'] = cards['rarity']
cardData['set'] = cards['set']
cardData['text'] = cards['text']
cardData['flavor'] = cards['flavor']
cardData['artist'] = cards['artist']
cardData['power'] = cards['power']
cardData['toughness'] = cards['toughness']
cardData['layout'] = cards['layout']
cardData['multiverseid'] = cards['multiverseid']
cardData['id'] = cards['id']
parsedData.append(cardData)
return render(request, 'graphs/graphs.html', {'data': parsedData})
else:
return redirect('index')
エラー
KeyError at /graphs/graphs/
'name'
私の見解では、このようなデータにアクセスしています。
{% for key in cards %}
<tr>
<td>{{ key.name }}</td>
<td>{{ key.manaCost }}</td>
<td>{{ key.colors }}</td>
<td>{{ key.type }}</td>
<td>{{ key.rarity }}</td>
<td>{{ key.set }}</td>
<td>{{ key.text }}</td>
<td>{{ key.flavor }}</td>
<td>{{ key.artist }}</td>
<td>{{ key.power }}</td>
<td>{{ key.toughness }}</td>
<td>{{ key.layout }}</td>
<td>{{ key.multiverseid }}</td>
<td>{{ key.id }}</td>
</tr>
{% endfor %}
キーエラーが表示されるのはなぜですか?
が、使用できない[ 'req.json()'](HTTP ://docs.python-requests.org/en/master/user/quickstart/#json-response-content)を使用して、応答をJSONオブジェクトに直接変換します。 – AKS