- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
>> s = urlparse.urlsplit(url) >>> print-6ren">
假设我有这段代码:
>>> import urlparse
>>> url = "http://google.com"
>>> s = urlparse.urlsplit(url)
>>> print s
SplitResult(scheme='http', netloc='google.com', path='', query='', fragment='')
>>> print 'scheme ',s.scheme
scheme http
>>> print 'netloc ',s.netloc
netloc google.com
如您所见,我可以手动遍历项目,但如何自动执行此操作?我想做这样的事情:
# This doesn't work:
for k,v in s.items():
print '%s : %s'%(k,v)
最佳答案
你可以使用内部的 _asdict
方法:
>>> import urlparse
>>> url = "http://google.com"
>>> s = urlparse.urlsplit(url)
>>> s
SplitResult(scheme='http', netloc='google.com', path='', query='', fragment='')
>>> s._asdict()
OrderedDict([('scheme', 'http'), ('netloc', 'google.com'), ('path', ''), ('query', ''), ('fragment', '')])
>>> d = s._asdict()
>>> for k,v in d.items():
... print k, repr(v)
...
scheme 'http'
netloc 'google.com'
path ''
query ''
fragment ''
为了澄清评论中提出的一点,尽管前缀 _
通常表示方法不是公共(public)接口(interface)的一部分,但该方法是公共(public)方法。它被赋予前缀以避免名称冲突,正如 namedtuple
文档解释的那样 [link] :
To prevent conflicts with field names, the method and attribute names start with an underscore.
而在 Python 3 中,由于实现的改变,这要容易得多:
>>> vars(urllib.parse.urlsplit("http://www.google.ca"))
OrderedDict([('scheme', 'http'), ('netloc', 'www.google.ca'), ('path', ''), ('query', ''), ('fragment', '')])
关于python - 如何迭代 urlparse.urlsplit() 结果 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845161/
其中URL parsing function pair我应该使用,为什么? urlparse和 urlunparse , 或 urlsplit和 urlunsplit ? 最佳答案 直接来自 the
假设我有这段代码: >>> import urlparse >>> url = "http://google.com" >>> s = urlparse.urlsplit(url) >>> print
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!