我在我的django应用程序中进行api调用。答案是json。目前我正在循环浏览模板中的数据并显示表格中的所有数据。在Django中处理Json响应
除image_url
以外的所有数据均显示在表格中。 image_url
有一个JPG路径。这种类型的json需要与正常的string
不同吗?
我注意到有几个字段缺少数据,我无法弄清楚为什么这几个字段缺少数据和字段之前,他们都工作正常。
这是JSON对象之一
[
{
"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"
}
]
},
这是我如何在视图中
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')
这是我如何在模板 标志着我访问数据处理数据那些失踪的人。
{% 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