2017-07-07 25 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