Using urlparse.parse_qs() - first element in dict is keyed on URL+key, instead of just key?

Victor Hooi victorhooi at gmail.com
Tue Oct 29 18:38:20 EDT 2013


Hi,

My bad - PEBKAC - didn't read the docs properly.

I need to use urlparse.urlparse() to extract the query first.

So for anybody searching this, you can use something liek:

	In [39]: url
	Out[39]: 'https://www.foo.com/cat/dog-13?utm_source=foo1043c&utm_medium=email&utm_campaign=ba^Cn=HC'

	In [40]: urlparse.parse_qs(urlparse.urlparse(url).query)
	Out[40]:
	{'utm_campaign': ['ba^Cn=HC'],
	 'utm_medium': ['email'],
	 'utm_source': ['foo1043c']}

Cheers,
Victor

On Wednesday, 30 October 2013 09:34:15 UTC+11, Victor Hooi  wrote:
> Hi,
> 
> 
> 
> I'm attempting to use urlparse.parse_qs() to parse the following url:
> 
> 
> 
>     https://www.foo.com/cat/dog-13?utm_source=foo1043c&utm_medium=email&utm_campaign=ba^Cn=HC
> 
> 
> 
> However, when I attempt to parse it, I get:
> 
> 
> 
> {'https://www.foo.com/cat/dog-13?utm_source': ['foo1043c'],
> 
>  'utm_campaign': ['ba^Cn=HC'],
> 
>  'utm_medium': ['email']}
> 
> 
> 
> For some reason - the utm_source doesn't appear to have been extracted correctly, and it's keying the result on the url plus utm_source, rather than just 'utm_source'?
> 
> 
> 
> Cheers,
> 
> Victor



More information about the Python-list mailing list