2013-05-31 60 views
0

我試圖對JSON編碼以下字典。但在這種情況下,message其實是一個unicode character DEVANAGARI LETTER在JSON編碼中跳出反斜槓python

所以,雖然這個編碼成dict JSON對象,它似乎在逃避message反斜槓(「\」)以兩個反斜槓(「\」)。

如何將字典改變這只是一個反斜槓「\」與json.dumps()

編碼之後我米使用以下custom encoder,以encode到JSON。

class MyCustomJsonEncoder(json.JSONEncoder): 
    def encode(self, obj): 
     # the json obj 
     count = 0 
     for ob in obj: 
      obj[count]['message'] = unicode(obj[count]['message']).replace("\\u","\u") 
      count += 1 
     return super(MyCustomJsonEncoder, self).encode(obj) 

[{ 
    'virality': '4.6%', 
    'post_engaged': 150, 
    'description': '', 
    'post_impressions': 1631, 
    'post_story': 75, 
    'name': '', 
    'source': '', 
    'comment_count': 16, 
    'link': '', 
    'text': '', 
    'created_time': '03:10 AM,<br>May 13, 2013', 
    'message': '\u092e\u0941\u0930\u0932\u0940 \u0938\u093e\u0930:-  \u0939\u0947 \u092e\u0940\u0920\u0947', 
    'id': u'182929845081087_572281819479219', 
    'status_type': 'status', 
    'likes_count': 55 
}] 
+0

薪火'ensure_ascii'選項爲False,以'dumps'將使它工作,你所希望的方式,雖然我不知道它是否會導致代碼打破的其他部分。但它可能值得嘗試看看它是否真的解決了你的問題。請參閱[docs here](http://docs.python.org/2/library/json.html#basic-usage) – naiquevin

+0

不能使用ensure_ascii不起作用。 –

+0

嘗試指定'message'值爲unicode – naiquevin

回答

1

使用unicode文字,以便\u轉義序列,而不是理解爲具有編譯器的想你的意思\\u

u'\u092e.... 
+0

請檢查更新後的問題。 –

+0

...呃。和? –

+0

我的意思是,我已經包括了試圖將其轉換爲unicode的自定義編碼器,但它似乎仍然沒有把它縮小。 –