我刚刚开始使用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