Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #101541
| From | Tim Chase <python.list@tim.thechases.com> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: modifying parts of a urlparse.SplitResult |
| Date | 2016-01-12 07:15 -0600 |
| Message-ID | <mailman.62.1452604696.13488.python-list@python.org> (permalink) |
| References | <20160112055236.7af20f50@bigbox.christie.dr> <n72sjn$h7i$1@ger.gmane.org> |
On 2016-01-12 13:46, Peter Otten wrote:
> Tim Chase wrote:
> > >>> u = urlparse.urlsplit(URL)
> > >>> lst = list(u) # can't manipulate the tuple directly
> > >>> lst[3] = "bar=baz" # 3 = query-string index
> > >>> urlparse.urlunsplit(lst)
> > 'http://foo/path1/path2/?bar=baz'
> >
> > It takes knowing that "3" is the magic index (documented, but not
> > given some named-constant in urlparse) for the query-string. Is
> > there some better, clearer, or more Pythonic way to do this?
>
> To allow more fieldnames namedtuples use method names starting with
> an underscore. You can safely use them, they are not private. So:
>
> >>> pr = urlparse.urlparse("http://foo/path1/path2/?fragment=foo")
> >>> urlparse.urlunparse(pr._replace(query="bar=baz"))
> 'http://foo/path1/path2/?bar=baz'
Much nicer. Thanks!
Off to improve my code.
-tkc
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: modifying parts of a urlparse.SplitResult Tim Chase <python.list@tim.thechases.com> - 2016-01-12 07:15 -0600
csiph-web