Я пытаюсь JSON кодировать следующий dict. Но в этом случае message
, который фактически является unicode character DEVANAGARI LETTER.Escape backslash в кодировке JSON python
Итак, при кодировании этого dict
в объект json он, похоже, сбрасывает обратную косую черту («\») с двумя обратными косыми чертами («\») в message
.
Как изменить это только один обратной косой черты «\» после кодирования его json.dumps()
Я использую следующую custom encoder
, чтобы encode
в Dict в формате 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
}]
Передача 'ensure_ascii' вариант, как ложно' dumps' будет заставить его работать так, как вы хотите, хотя я не уверен, будет ли это вызвать другие части вашего кода сломаться. Но, возможно, стоит попытаться понять, действительно ли это решает вашу проблему. См. [Docs here] (http://docs.python.org/2/library/json.html#basic-usage) – naiquevin
Nope secure_ascii не повлиял. –
попробуйте указать значение 'message' как unicode – naiquevin