作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在运行 Python 3.5.2 的计算机上创建了一个 Python 脚本。现在我想在另一台运行 Python 3.4.2 的计算机上运行它,但我无法在那里升级 Python。我的问题是我使用了
urllib.parse.urlencode(dict, safe='/', quote_via=urllib.parse.quote)
quote_via 选项显然在 Python 3.4.2 中不可用,所以我收到错误
TypeError: urlencode() got an unexpected keyword argument 'quote_via'
我需要在这里对字典dict
进行urlencode,仅使用quote()
而不是quote_plus()
,这是3.4中的默认值和3.5。然而,似乎只有 3.5 有可能覆盖默认值。
我该如何解决这个问题?
最佳答案
实现您自己的urlencode()
函数。 urllib.parse.urlencode()
library function主要由测试组成,以确保可以处理 bytes
和 str
对象,以及处理 doseq
标志。
否则,它只不过是一个对每对的键和值进行编码的循环,在它们之间添加 =
并用 &
连接所有此类对。为您的输入实现相同的循环,并对您需要的变体进行硬编码。
您可以通过以下方式复制您的特定行为:
'&'.join(['{}={}'.format(quote(k, safe='/'), quote(v, safe='/'))
for k, v in dict.items()])
关于Python 3 如何解决 Python 3.4.2 中 urllib.parse.urlencode 缺少 quote_via,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42460095/
我在运行 Python 3.5.2 的计算机上创建了一个 Python 脚本。现在我想在另一台运行 Python 3.4.2 的计算机上运行它,但我无法在那里升级 Python。我的问题是我使用了 u
我是一名优秀的程序员,十分优秀!