私はdjangoアプリケーションでapi呼び出しを行っています。応答はjsonです。現在、テンプレート内のデータをループして、すべてのデータを表に表示しています。DjangoでのJson応答の処理
image_url
を除くすべてのデータが表に示されています。 image_url
にはjpgへのURLパスがあります。このタイプのjsonは通常のstring
とは異なる処理が必要ですか?
データが欠落しているフィールドがいくつかあることに気づき、これらのフィールドの前にデータとフィールドがない理由を理解できません。
これはJSONの一つでは、これは私がビュー
def graphs(request):
if request.user.is_authenticated():
data = []
r = requests.get('https://api.deckbrew.com/mtg/cards')
jsonList = r.json()
for cards in jsonList:
data.append(cards)
return render(request, 'graphs/graphs.html', {'data': data})
else:
return redirect('index')
これは私がマークされたテンプレート 内のデータにアクセスしていますがどのようにしてデータを処理しています方法です
[
{
"name": "_____",
"id": "_____",
"url": "https://api.deckbrew.com/mtg/cards/_____",
"store_url": "http://store.tcgplayer.com/magic/unhinged/_____?partner=DECKBREW",
"types": [
"creature"
],
"subtypes": [
"shapeshifter"
],
"colors": [
"blue"
],
"cmc": 2,
"cost": "{1}{U}",
"text": "{1}: This card's name becomes the name of your choice. Play this ability anywhere, anytime.",
"power": "1",
"toughness": "1",
"formats": {},
"editions": [
{
"set": "Unhinged",
"set_id": "UNH",
"rarity": "uncommon",
"artist": "Ron Spears",
"multiverse_id": 74252,
"flavor": "{1}: This card's flavor text becomes the flavor text of your choice. (This ability doesn't work because it's flavor text, not rules text (but neither does this reminder text, so you figure it out).)",
"number": "23",
"layout": "normal",
"price": {
"low": 0,
"median": 0,
"high": 0
},
"url": "https://api.deckbrew.com/mtg/cards?multiverseid=74252",
"image_url": "https://image.deckbrew.com/mtg/multiverseid/74252.jpg",
"set_url": "https://api.deckbrew.com/mtg/sets/UNH",
"store_url": "http://store.tcgplayer.com/magic/unhinged/_____?partner=DECKBREW"
}
]
},
オブジェクト行方不明のもの
{% for card in data %}
<tr>
<td>{{ card.name }}</td>
<td>{{ card.id }}</td>
<td>{{ card.url }}</td>
<td>{{ card.store_url }}</td>
<td>{{ card.types }}</td>
<td>{{ card.subtypes }}</td>
<td>{{ card.colors }}</td>
<td>{{ card.cmc }}</td>
<td>{{ card.cost }}</td>
<td>{{ card.text }}</td>
<td>{{ card.power }}</td>
<td>{{ card.toughness }}</td>
<td>{{ card.formats }}</td>
<td>{{ card.editions }}</td>
<td>{{ card.set }}</td> # MISSING
<td>{{ card.set_id }}</td> # MISSING
<td>{{ card.rarity }}</td> # MISSING
<td>{{ card.artist }}</td> # MISSING
<td>{{ card.multiverse_id
<td>{{ card.flavor }}</td> # MISSING
<td>{{ card.number }}</td> # MISSING
<td>{{ card.layout }}</td> # MISSING
<td>{{ card.price }}</td> # MISSING
<td>{{ card.low }}</td> # MISSING
<td>{{ card.median }}</td> # MISSING
<td>{{ card.high }}</td> # MISSING
<td>{{ card.url }}</td>
<td>{{ card.image_url }}</td> # MISSING
<td>{{ card.set_url }}</td> # MISSING
<td>{{ card.store_url }}</td>
</tr>
{% endfor %}
申し訳ありませんが、私はあなたを失ってしまいました。応答はjsonですが、ビュー関数の応答ははっきりとhtmlですか? – Wtower
最初のコードブロックはjsonです。それから私の見解では、私はjsonをリストに入れました。 htmlテンプレートでアクセスします。 – wuno
jsonの最初のオブジェクトをコピーして貼り付けました。これは私のコードです。ここでの問題は、私が得ているjsonの応答が有効なjsonではないということですか? – wuno