2016-01-05 80 views
0

我有一個字符串:如何將字符串轉換爲Python中的字典?

a = subteam3=zzz&comments3=good&subteam9=yyy&comments9=bad 

其通過從阿賈克斯到Django的:

a = request.POST.get('a') 

,我已經做了a = urllib2.unquote(a)把它轉換成一個適當的字符串。

我想將其轉換爲2點字典:

subteam = { 3 : zzz, 9 : yyy } 

comments = { 3 : good, 9 : bad } 

任何一個可以給我一個解決方案嗎?

+2

哪裏是你的企圖,什麼恰恰是它存在的問題? SO既不是代碼編寫,也不是教程服務。 – jonrsharpe

+0

看起來您正在嘗試解碼HTML表單值。看看Pythons CGI模塊。 –

+0

是的,他們是表單值..我把它作爲數據傳遞給ajax:{a:$('form#form')。serialize()} –

回答

0
a = 'subteam3=zzz&comments3=good&subteam9=yyy&comments9=bad' 
a = a.split('&') 
b = dict() 
c = dict() 

for i in range(0,len(a)): 
    if 'subteam' in a[i]: 
     temp,temp1 = a[i].strip('subteam').split("=") 
     b[temp]=temp1 
    else: 
     temp,temp1 = a[i].strip('comments').split("=") 
     c[temp]=temp1 

print b,c 
+0

非常感謝! –

0

request.POSTrequest.GET已經是dicts了(實際上,dict like)。

檢查文檔的這一部分:

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST

它們就像這個對象,從Django文檔:

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.QueryDict

你可以做的,是這樣的:

a = request.POST.get("a", None); 
if a: 
    print a 
else: 
    print "no a" 

如果你需要處理這些信息,那看起來像是一個Django模型,或者其他什麼,結賬Django形成的。你可以通過POST請求創建一個django表單,無論它是否是AJAX,並讓它爲你完成繁重的工作。

0
a = 'subteam3=zzz&comments3=good&subteam9=yyy&comments9=bad' 
subteam = {} 
comment = {} 

for each in a.split('&'): 
    if each.startswith('subteam'): 
     subteam[each.split('=')[0][-1]]=each.split('=')[1] 
    elif each.startswith('comment'): 
     comment[each.split('=')[0][-1]]=each.split('=')[1] 
相關問題