如何从完整的URL创建百分比编码的URL?

How can I create a percent encoded URL from complete URL?(如何从完整的URL创建百分比编码的URL?)
本文介绍了如何从完整的URL创建百分比编码的URL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

输入的URL是ASCII和多字节代码的混合。 我不能改变这根弦。 我想下载此URL,但ordinal not in range(128)出错。

input_url = "http://sample.jp/api?v1=aaa&v2=日本語&v3=ccc"

req = urllib.request.Request(input_url)
resp = None
try:
    resp = urllib.request.urlopen(req)
except UnicodeEncodeError as e:
    print(e.reason)  # I had an error `ordinal not in range(128)`
return resp
首先,我尝试urllib.parse.quote(),但结果是http%3a%2f%2fsample%2ejp%2fapi%3fv1%3daaa%26v2%3d%93%fa%96%7b%8c%ea%26v3%3dccc。我有另一个错误ValueError: unknown url type。 我如何才能解决这个问题?还是你有什么想法?

推荐答案

urllib和urlparse的组合应该可以为您完成此操作:

>>> urllib.urlencode(urlparse.parse_qsl(urlparse.urlparse(input_url).query))
'v1=aaa&v2=%E6%97%A5%E6%9C%AC%E8%AA%9E&v3=ccc'

这篇关于如何从完整的URL创建百分比编码的URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)