2017-07-07 59 views
0

我试图更新我的Solr文档的URL字段,但我得到以下错误Solr的:得到错误的URL字段,同时更新

HTTP Error 400: Bad Request

我认为这是因为URL字段的

image_new_path = https://aaa.com/bbb/posts/post_fta6cueqq1497926075564.jpeg 
req = urllib2.Request(url=solrPath + '/update/json?commit=true', data='[{"id":"' + docs['id'] + '","image":{"set":'+image_new_path+'}}]') 

有我需要改变的特殊字符吗?如果是,哪一个以及如何?

Solr的错误:

RequestHandlerBase 

org.apache.solr.common.SolrException: Cannot parse provided JSON: Expected ',​' or '}': char=:,​position=41 BEFORE='[{"id":"189",​"image":{"set":https:' AFTER='//aaa.com/bbb/user' 

回答

0

的问题是“:”我必须添加“\”前“:”,使其工作。所以,现在的图像路径变得

https\://aaa/bbb 
0

你错过了周围的image_new_path"",您可以通过添加""围绕它解决这个问题:

.. {"set":"'+image_new_path+'"}} 

..但你不应该手工编写JSON通过自己连接数值,因为当涉及到逃脱时你必须遵守所有JSON的规则。

使用内置在Python支持JSON的json模块代替:

import json 

.. 

.. data=json.dumps([{'id': docs['id'], 'image': {'set': image_new_path}}]) 

,或者甚至更好,使用Solr的库,例如pysolrmysolr