2010-02-04 5 views
1
params = {'fruit':'orange', 'color':'red', 'size':'5'} 

Как я могу превратить это в строку:Как превратить словарь в строку?

fruit=orange&color=red&size=5 
+0

Является ли это для создания URL-адреса или для других целей? Как вы хотите, чтобы специальные символы внутри строк обрабатывались? Должны ли они избегать использования в качестве URL-адресов? –

ответ

11

Вы можете сделать это следующим образом:

'&'.join('%s=%s' % (k,v) for k,v in params.items()) 

Если вы строите строки для URL, было бы лучше использовать URLLIB так как это тоже будет правильно для вас:

>>> params = { 'foo' : 'bar+baz', 'qux' : 'quux' } 
>>> urllib.urlencode(params) 
'qux=quux&foo=bar%2Bbaz' 
3

Если вы кодируете url param Для этого вы можете использовать urllib.urlencode. Например:

import urllib 
params = {'fruit':'orange', 'color':'red', 'size':'5'} 
encoding = urllib.urlencode(params) 

это будет также запустить Dict через urllib.quote_plus.

3

Вы спрашиваете об этом?

>>> params = {'fruit':'orange', 'color':'red', 'size':'5'} 
>>> import urllib 
>>> urllib.urlencode(params) 
'color=red&fruit=orange&size=5' 
2

Если вы хотите создать строку запроса, Python поставляется с батарейками в комплекте:

import urllib 
print(urllib.urlencode({'fruit':'orange', 'color':'red', 'size':'5'})) 
Смежные вопросы