python用urllib将url参数解析成字典
Posted
技术标签:
【中文标题】python用urllib将url参数解析成字典【英文标题】:python parsing url parameters into a dictionary with urllib 【发布时间】:2022-01-21 17:13:37 【问题描述】:我正在尝试使用 urllib 获取 url 的参数。
在重温一些 *** Q&A 之后,以下几行有答案:
从 urllib.parse 导入 urlparse
url2='https://batavia.flyingcar.org/dfr/?d=34?f=56#/?dossier=ZT18174#/?dossier2=ZZ274'
parsed = urlparse(url2)
print(parsed)
结果是:
ParseResult(scheme='https', netloc='batavia.internal.epo.org', path='/digital-file-repository/', params='', query='d=34?f=56', fragment='/?dossier=ZT1880174#/?dossier2=ZZ2221880174')
为了获取我可能使用的所有参数:
print(parsed.params)
print(parsed.query)
print(parsed.fragment)
结果:
d=34?f=56
/?dossier=ZT18174#/?dossier2=ZZ274
我的问题: a) 为什么 params 什么都不是? b)是否有任何函数可以以字典的形式获取结果而无需解析字符串? c) 如果片段都用于传递参数,为什么片段与查询的处理方式不同?
【问题讨论】:
【参考方案1】:首先,网址中不应包含多个?
,后续参数以&
分隔。该网址刚刚损坏。
a) 参数始终为空,甚至被记录为“始终为空字符串”
b) 您可以使用urllib.parse.parse_qs()
将查询字符串拆分为一个字典,但如果您在查询字符串中有多个?
,它将不起作用
c) 从片段中解析参数只是一个约定,片段是#
之后的所有内容,并且没有任何标准编码约定。
【讨论】:
以上是关于python用urllib将url参数解析成字典的主要内容,如果未能解决你的问题,请参考以下文章