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参数解析成字典的主要内容,如果未能解决你的问题,请参考以下文章

将url的查询参数解析成字典对象

将url的查询参数解析成字典对象

将url的查询参数解析成字典对象

python__标准库 : urllib2

将url的查询参数解析成字典对象

urllib url解析学习