我剛剛開始使用Python,並且我被困在需要將一組request.POST參數轉換爲Solr查詢語法的語法。將python字典轉換爲Solr查詢字符串
的使用情況是這樣定義的一種形式:
class SearchForm(forms.Form):
text = forms.CharField()
metadata = forms.CharField()
figures = forms.CharField()
提交後,形式需要產生一個URL編碼的字符串傳遞給一個URL的客戶端,看起來像這樣:
text:myKeyword1+AND+metadata:myKeyword2+AND+figures:myKeyword3
似乎應該有一個簡單的方法來做到這一點。我能得到的最接近的是
for f, v in request.POST.iteritems():
if v:
qstring += u'%s\u003A%s+and+' % (f,v)
然而,在這種情況下,冒號(\ u003A),因爲它是沒有得到正確編碼生成Solr的錯誤。
乾淨的方法是什麼?
謝謝!
偉大的解決方案,謝謝!需要注意的是,我認爲較新版本的python使用「cleaned_data」而不是「clean_data」。不知道這是否準確。 – andyashton 2010-02-06 02:56:44
你的權利,這是一個錯字。我修復了我原來的答案 – buckley 2010-02-06 18:09:23