如何使python webapi请求仅在存在时返回值

2024-10-02 18:18:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一个api连接,一切正常,但当python必须打印一些不存在的值时,它给了我一个错误。当值存在时,一切正常

代码:(使用python3.7)

r = requests.get('https://api.csgofloat.com/?url=%s' %floaat, headers={})
data = r.json()
print("Sticker 1: %s" %data['iteminfo']['stickers'][0]['name'])
print("Sticker 2: %s" %data['iteminfo']['stickers'][1]['name'])
print("Sticker 3: %s" %data['iteminfo']['stickers'][2]['name'])
print("Sticker 4: %s" %data['iteminfo']['stickers'][3]['name'])

当我有4个值,但只有1个值时,我得到所有的值,它打印存在的值,但给出错误并退出脚本,没有返回值,我只得到错误(如前所述)

打印错误:

Traceback (most recent call last): File "C:\Users\Joao\Desktop\Folderzz\Scripts\script.py", line 47, in print("Sticker 1: %s" %data['iteminfo']['stickers'][0]['name']) IndexError: list index out of range


Tags: 代码namehttpsapidataget错误requests
1条回答
网友
1楼 · 发布于 2024-10-02 18:18:08

问题是你不知道有多少“贴纸”进来,所以你应该做一个循环:

i = 0
for sticker in data['iteminfo']['stickers']
   i += 1
   print "Sticker {}: {}".format(i, sticker)

相关问题 更多 >