处理url中的可选urlparse参数

时间:2017-08-27 03:55:55

标签: python urlparse

我的小脚本处理从网址传递的几个参数;

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 = int(urlparse.parse_qs(urlparse.urlparse(self.path).query).get('bright', None)[0])
TypeError: 'NoneType' object has no attribute '__getitem__'

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

1 个答案:

答案 0 :(得分:0)

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

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