如何执行python Web API请求仅在存在值时才返回值

时间:2019-01-13 22:01:47

标签: python

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

代码:(使用python 3.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个值,它会打印存在的值,但会给出错误并退出脚本,并且没有返回值,我只会得到错误(如之前说过)

打印错误:

  

回溯(最近通话最近):文件   “ C:\ Users \ Joao \ Desktop \ Folderzz \ Scripts \ script.py”,第47行,在          print(“ Sticker 1:%s”%data ['iteminfo'] ['stickers'] [0] ['name'])IndexError:列表索引超出范围

1 个答案:

答案 0 :(得分:0)

问题是您不知道会有多少“贴纸”进入,因此您应该进行循环:

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