解析URL并替换变量(如果存在)

时间:2019-01-14 23:31:32

标签: python pytest

我在xls文件中指定了URI。我想读取该xls文件,从那里获取URI,进行解析,然后用相应的值替换变量(如果存在),然后对该URI进行API调用 例如:

These are a few URI's in the xls sheet:
https://api.something.com/v1/me
https://api.something.com/v1/{user_id}/account

(其中user_id是变量,必须替换为适当的值。)是否有一种简单的方法来解析URI并检查是否存在变量,如果是,请获取变量的值和形式带有值的新字符串,然后使用URI进行API调用。否则按原样使用URI。

2 个答案:

答案 0 :(得分:0)

可以使用stdlib string.Formatter发现字段名称:

>>> s = "https://api.something.com/v1/{user_id}/account"
>>> from string import Formatter
>>> parsed = Formatter().parse(s)
>>> field_names = []
>>> for literal_text, field_name, format_spec, conversion in parsed:
...     if field_name is not None:
...         field_names.append(field_name)
...         
>>> field_names
['user_id']

答案 1 :(得分:0)

幸运的是,Python具有内置的机制来处理此问题!

>>> 'https://api.something.com/v1/{user_id}/account'.format(user_id='my_id', unused_variable='xyzzy')
'https://api.something.com/v1/my_id/account'