将 URL 参数转换为字典项的Python程序
给定 URL 参数字符串,转换为字典项。
Input : test_str = ‘gfg=4&is=5’
Output : {‘gfg’: [‘4’], ‘is’: [‘5’]}
Explanation : gfg’s value is 4.
Input : test_str = ‘gfg=4’
Output : {‘gfg’: [‘4’]}
Explanation : gfg’s value is 4 as param.
方法 #1:使用 urllib.parse.parse_qs()
这是执行此任务的默认内置函数,它解析并从“=”的 LHS 形成键,并返回参数的 RHS 值中的值列表。因此,导入外部 urllib.parse() 以使其能够工作。
Python3
# import module
import urllib.parse
# initializing string
test_str = 'gfg=4&is=5&best=yes'
# printing original string
print("The original string is : " + str(test_str))
# parse_qs gets the Dictionary and value list
res = urllib.parse.parse_qs(test_str)
# printing result
print("The parsed URL Params : " + str(res))
Python3
import re
# initializing string
test_str = 'gfg=4&is=5&best=yes'
# printing original string
print("The original string is : " + str(test_str))
# getting all params
params = re.findall(r'([^=&]+)=([^=&]+)', test_str)
# assigning keys with values
res = dict()
for key, val in params:
res.setdefault(key, []).append(val)
# printing result
print("The parsed URL Params : " + str(res))
The original string is : gfg=4&is=5&best=yes
The parsed URL Params : {‘gfg’: [‘4’], ‘is’: [‘5’], ‘best’: [‘yes’]}
方法 #2:使用 findall() + setdefault()
在这里,我们使用 findall() 获取所有参数,然后使用 setdefault() 和循环分配键和值。
蟒蛇3
import re
# initializing string
test_str = 'gfg=4&is=5&best=yes'
# printing original string
print("The original string is : " + str(test_str))
# getting all params
params = re.findall(r'([^=&]+)=([^=&]+)', test_str)
# assigning keys with values
res = dict()
for key, val in params:
res.setdefault(key, []).append(val)
# printing result
print("The parsed URL Params : " + str(res))
The original string is : gfg=4&is=5&best=yes
The parsed URL Params : {‘gfg’: [‘4’], ‘is’: [‘5’], ‘best’: [‘yes’]}