处理 url 中的可选 url 解析参数

Dealing with optional urlparse parameters in url

我的小脚本处理从 url;

传递的几个参数
bright = int(urlparse.parse_qs(urlparse.urlparse(self.path).query).get('bright', None)[0])
loops = int(urlparse.parse_qs(urlparse.urlparse(self.path).query).get('loops', None)[0])
speed = float(urlparse.parse_qs(urlparse.urlparse(self.path).query).get('speed', None)[0])/1000

然而,有些参数是可选的,例如 'bright' 有时不会在 url 中传递,因为它不相关。如果是这种情况,它会抛出这个错误;

bright = int(urlparse.parse_qs(urlparse.urlparse(self.path).query).get('bright', None)[0])
TypeError: 'NoneType' object has no attribute '__getitem__'

我能理解..它试图解析不存在的东西。处理这个问题的最佳方法是什么?有没有办法在尝试解析它们之前先获取 url 中存在的参数列表?

为什么不循环遍历从 parse_qs() 获得的参数字典,以查看 url 中存在的可用参数?

此外,您可以使用 try/except 块捕获 None 事件,并采取相应行动。